JPS6182241A - 手続区画の分割方式 - Google Patents
手続区画の分割方式Info
- Publication number
- JPS6182241A JPS6182241A JP17977784A JP17977784A JPS6182241A JP S6182241 A JPS6182241 A JP S6182241A JP 17977784 A JP17977784 A JP 17977784A JP 17977784 A JP17977784 A JP 17977784A JP S6182241 A JPS6182241 A JP S6182241A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- loop
- division
- partition
- section
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、コンパイラ、特にオブジェクト・モジュール
を作成する際に、ループが手続区画(Procedur
e Domain)の境界を跨がらないように設定する
手続区画の分割方式に関するものである。
を作成する際に、ループが手続区画(Procedur
e Domain)の境界を跨がらないように設定する
手続区画の分割方式に関するものである。
第5図は従来の手続区画の分割方式を説明するものであ
って、1はデータ部、2は手続き部、OMはオブジェク
ト・モジュール、PI)Tは手続区画テーブル、PDI
ないしPD3は手続区画をそれぞれ示している。オブジ
ェクト・モジュールOMは、データ部1と手続き部2に
分割されている。
って、1はデータ部、2は手続き部、OMはオブジェク
ト・モジュール、PI)Tは手続区画テーブル、PDI
ないしPD3は手続区画をそれぞれ示している。オブジ
ェクト・モジュールOMは、データ部1と手続き部2に
分割されている。
手続き部2は、複数の手続区画PDI、PD2、PD3
・・・に分割されている。従来技術においては、手続区
画PDI、PD2、PD3・・・の大きさは全て同じで
あり、その大きさは4 K (4096)バイトである
。データ部1の中には、手続区画テーブルPDTが存在
している。手続区画テーブルPDTは、手続区画の先頭
番地を記4.aする。手続区画PDiに分岐する場合に
は、 L Br =A (PDi) ■B
Cm、 D (0,Br) ■なる命令が
必要になることがある。■の命令は、手続区画P’Di
の先頭番地をベース・レジスタBrにロードせよという
命令夕あり、■の命令−分岐条件mが成立したときベー
ス・レジスタBrの内容にディスプレイスメン)Dを加
算した番地に分岐せよという命令である。■の手続区画
の先頭番地をロードする命令は、同し手続区画への分岐
が続くうちは最初の一度だけで足りる。しかし、手続区
画の境界近くでは別の手続区画内への分岐と現在の手続
区画内への分岐とが入り混じり、■のロード命令を必要
とする歩頁度が高くなる。特に、手続区画の境界がルー
プの中に存在する場合には、実行回数が多い部分なので
、その影響は大きい。
・・・に分割されている。従来技術においては、手続区
画PDI、PD2、PD3・・・の大きさは全て同じで
あり、その大きさは4 K (4096)バイトである
。データ部1の中には、手続区画テーブルPDTが存在
している。手続区画テーブルPDTは、手続区画の先頭
番地を記4.aする。手続区画PDiに分岐する場合に
は、 L Br =A (PDi) ■B
Cm、 D (0,Br) ■なる命令が
必要になることがある。■の命令は、手続区画P’Di
の先頭番地をベース・レジスタBrにロードせよという
命令夕あり、■の命令−分岐条件mが成立したときベー
ス・レジスタBrの内容にディスプレイスメン)Dを加
算した番地に分岐せよという命令である。■の手続区画
の先頭番地をロードする命令は、同し手続区画への分岐
が続くうちは最初の一度だけで足りる。しかし、手続区
画の境界近くでは別の手続区画内への分岐と現在の手続
区画内への分岐とが入り混じり、■のロード命令を必要
とする歩頁度が高くなる。特に、手続区画の境界がルー
プの中に存在する場合には、実行回数が多い部分なので
、その影響は大きい。
ループが1個の手続区画の中に入ってしまえば、■のロ
ート命令を可成り減らずことが出来、効率の良いオブジ
ェクト・モジュールを作成することが出来る。
ート命令を可成り減らずことが出来、効率の良いオブジ
ェクト・モジュールを作成することが出来る。
本発明は、上記の考察に基づくものであって、手続区画
の先頭番地をベース・レジスタにロードする命令の実行
回数を減少できるように手続区画を定める手続区画の分
割方式を提供することを目的としている。
の先頭番地をベース・レジスタにロードする命令の実行
回数を減少できるように手続区画を定める手続区画の分
割方式を提供することを目的としている。
[目的を達成−づるための構成〕
そしてそのため゛、本発明の手続区画の分割方式は、手
続き部が複数の手続区画に分割されたオブジェク1−・
モジュールを生成するコンパイラにおいて、手続区画の
分割を行う手続区画分割装置と、ループ中の手続区画分
割装置とを設i:L、 、、、lz記手続区画分割装置
は、手続区画の分割を行うときの地点がループ内であれ
ば、上記ループ中の手続区画制御装置に制御を渡し、上
記ループ中の手続区画制御装置は、制御が渡されたとき
、ループを意識しなから手続区画の分割を行うことを特
徴とするものである。
続き部が複数の手続区画に分割されたオブジェク1−・
モジュールを生成するコンパイラにおいて、手続区画の
分割を行う手続区画分割装置と、ループ中の手続区画分
割装置とを設i:L、 、、、lz記手続区画分割装置
は、手続区画の分割を行うときの地点がループ内であれ
ば、上記ループ中の手続区画制御装置に制御を渡し、上
記ループ中の手続区画制御装置は、制御が渡されたとき
、ループを意識しなから手続区画の分割を行うことを特
徴とするものである。
要約すると、本発明は、手続区画に分割しようとする地
点かループの中にあるとき(J、その点を直接に含むル
ープの直ni7て手続区画に分割するものである。ただ
し、ループの直前で分割した後、再び分割しなければな
らなくなったときは、その地点で分割する。
点かループの中にあるとき(J、その点を直接に含むル
ープの直ni7て手続区画に分割するものである。ただ
し、ループの直前で分割した後、再び分割しなければな
らなくなったときは、その地点で分割する。
第1図はコンパイラの概要を示す図である。コンパイラ
3は、ソースプログラムの入力、構文解析、意味付け、
最適化、レジスタ割付及びオブジェクト生成という処理
を行う。最適化処理を完了する時点までに、ループに関
する情報を格納するループ表などが作成される。本発明
は第1図のオブジェクト生成処理に関係するものである
。
3は、ソースプログラムの入力、構文解析、意味付け、
最適化、レジスタ割付及びオブジェクト生成という処理
を行う。最適化処理を完了する時点までに、ループに関
する情報を格納するループ表などが作成される。本発明
は第1図のオブジェクト生成処理に関係するものである
。
第2図は本発明を実施するための装置の機能ブロック図
である。第2図において、3はオブジェクト生成装置、
4はPD(手続区画)分割装置、5はループ中のPD分
割装置、6は分岐命令生成装置をそれぞれ示している。
である。第2図において、3はオブジェクト生成装置、
4はPD(手続区画)分割装置、5はループ中のPD分
割装置、6は分岐命令生成装置をそれぞれ示している。
手続き部2を手続区画に分割する処理は、PD分割装置
4が行うが、手続区画に分割する地点がループ内であれ
ば、PD分割装置4からループ中のPD分割装置5に制
御が渡る。ループ中のPD分割装置5は、ループを意識
しながら手続区画の分割を行う。
4が行うが、手続区画に分割する地点がループ内であれ
ば、PD分割装置4からループ中のPD分割装置5に制
御が渡る。ループ中のPD分割装置5は、ループを意識
しながら手続区画の分割を行う。
第3図は第2図のシステムで行われる処理の流れを示す
図である。
図である。
■ 手続区画の分割地点であるか否かを調べる。
Yesのときは[相]の処理を行い、Noのときは■の
処理を行う。
処理を行う。
■ ループの入口か否かを調べる。Yesのときは■の
処理を行い、N’oのときは■の処理を行う。
処理を行い、N’oのときは■の処理を行う。
■ ループ状況スタッカに入口階(ラヘル)をスタック
する。
する。
■ 分岐命令か否かを調べる。Yesのときは■の処理
を行い、Noのときは■の処理を行う。
を行い、Noのときは■の処理を行う。
■ 分岐命令手続サイズをPD分割手続サイズに加算す
る。この処理は、分岐命令生成装置6で行われる。
る。この処理は、分岐命令生成装置6で行われる。
■ 命令生成手続サイズをPD分割手続サイズに加算す
る。
る。
■ ループの出口か否かを調べる。Yesのときは■の
処理を行い、Noのときは■の処理を行う。
処理を行い、Noのときは■の処理を行う。
■ ループ状況スタッカを更新する。
■ 残りの命令があるか否かを調べる。Noのときは終
りとし、Yesのときは■に戻る。
りとし、Yesのときは■に戻る。
[相] ループ中か否かを調べる。Yesのときは0の
処理を行い、NOのときは■の処理を行う。
処理を行い、NOのときは■の処理を行う。
OPD分割手続サイズをクリアする。@120の処理は
PD分割装置4で行われる。
PD分割装置4で行われる。
@ 分割地点を直接食むループの入口でPD分割手続サ
イズをクリアする。
イズをクリアする。
0 分割地点以降初期分割地点までの再オブジェクトを
生成する。@、0の処理はループ中の分割装置5で行わ
れる。
生成する。@、0の処理はループ中の分割装置5で行わ
れる。
第4図はループ状況スタッカの内容の変化を説明するも
のである。図示のような二重ループを考える。■の命令
を処理するとき、ループ状況スタッカ7に先頭位置■を
設定する。この状態は(ロ)に示される。■の命令を処
理するとき、ループ状況スタッカ7に先頭位置■を設定
する。この状態は(ハ)に示される。■の命令を処理す
るとき、ループ状況スタッカ7から■を削除する。■で
手続区画を分割しなければならないとき、この地点がル
ープの中に含まれていること及びそのループの入口が■
てあろごとがループ状況スタ・7カ7から判る。したか
って、■でム4゛なく、■で分割できる。■及び■がル
ープの入「1であること並びに■及び■かループの出「
1であることし4、ループ表に示されている。
のである。図示のような二重ループを考える。■の命令
を処理するとき、ループ状況スタッカ7に先頭位置■を
設定する。この状態は(ロ)に示される。■の命令を処
理するとき、ループ状況スタッカ7に先頭位置■を設定
する。この状態は(ハ)に示される。■の命令を処理す
るとき、ループ状況スタッカ7から■を削除する。■で
手続区画を分割しなければならないとき、この地点がル
ープの中に含まれていること及びそのループの入口が■
てあろごとがループ状況スタ・7カ7から判る。したか
って、■でム4゛なく、■で分割できる。■及び■がル
ープの入「1であること並びに■及び■かループの出「
1であることし4、ループ表に示されている。
jソーl−の説明から明らかなように、本発明によれば
、手続区画の境界をA:たかるループの数を従来方式よ
り減らずことか出来るので、ロート命令の実行回数を減
らずことか出来、実行性能のよいオフシlりl・・モジ
1−ルを作成することができる。
、手続区画の境界をA:たかるループの数を従来方式よ
り減らずことか出来るので、ロート命令の実行回数を減
らずことか出来、実行性能のよいオフシlりl・・モジ
1−ルを作成することができる。
第1図はコンパイラの概要を示す図、第2図は本発明を
実施するための装置の概要を示す機能ブロック図、第3
図は第2図のシステムで行われる処理の流れを示す図、
第4図はループ状況スタッカの内容の変化を説明する図
、第5図しJ従来の手続区画の分割を説明する図である
。 1・・テーク部、2・・手続き部、3・・・オソジLク
ト生成装置、4・・・PD分割装置、5・・・ループ中
のPD分割装置、6・・・分岐命令生成装置。
実施するための装置の概要を示す機能ブロック図、第3
図は第2図のシステムで行われる処理の流れを示す図、
第4図はループ状況スタッカの内容の変化を説明する図
、第5図しJ従来の手続区画の分割を説明する図である
。 1・・テーク部、2・・手続き部、3・・・オソジLク
ト生成装置、4・・・PD分割装置、5・・・ループ中
のPD分割装置、6・・・分岐命令生成装置。
Claims (1)
- 手続き部が複数の手続区画に分割されたオブジェクト・
モジュールを生成するコンパイラにおいて、手続区画の
分割を行う手続区画分割装置と、ループ中の手続区画分
割装置とを設け、上記手続区画分割装置は、手続区画の
分割を行うときの地点がループ内であれば、上記ループ
中の手続区画制御装置に制御を渡し、上記ループ中の手
続区画制御装置は、制御が渡されたとき、ループを意識
しながら手続区画の分割を行うことを特徴とする手続区
画の分割方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17977784A JPS6182241A (ja) | 1984-08-29 | 1984-08-29 | 手続区画の分割方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17977784A JPS6182241A (ja) | 1984-08-29 | 1984-08-29 | 手続区画の分割方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6182241A true JPS6182241A (ja) | 1986-04-25 |
Family
ID=16071705
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17977784A Pending JPS6182241A (ja) | 1984-08-29 | 1984-08-29 | 手続区画の分割方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS6182241A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009211491A (ja) * | 2008-03-05 | 2009-09-17 | Oki Semiconductor Co Ltd | プログラム作成方法およびその装置 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5852752A (ja) * | 1981-09-24 | 1983-03-29 | Fujitsu Ltd | セクション決定方式 |
-
1984
- 1984-08-29 JP JP17977784A patent/JPS6182241A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5852752A (ja) * | 1981-09-24 | 1983-03-29 | Fujitsu Ltd | セクション決定方式 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009211491A (ja) * | 2008-03-05 | 2009-09-17 | Oki Semiconductor Co Ltd | プログラム作成方法およびその装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20070273700A1 (en) | Method, system and computer program product for efficiently utilizing limited resources in a graphics device | |
| JPS6077265A (ja) | ベクトル処理装置 | |
| JPS6182241A (ja) | 手続区画の分割方式 | |
| JPH03122727A (ja) | 仮想計算機システムのタイマ制御方式 | |
| KR950003879B1 (ko) | 디스크 장치를 공유하기 위한 시스템구조 및 공유 방법 | |
| JP2590872B2 (ja) | タスクスケジュール方法 | |
| JP2663600B2 (ja) | 制御表再配置処理方式 | |
| JP2567111B2 (ja) | マイクロプログラム制御装置 | |
| JPS6155752A (ja) | 拡張記憶装置の制御方式 | |
| JPH0922363A (ja) | タスク構成方式 | |
| JPS6269321A (ja) | プロセススイツチ方式 | |
| JPS5960677A (ja) | 企業モデルシミユレ−シヨンシステム | |
| JPS59123974A (ja) | ベクトルデ−タ記憶制御方式 | |
| JPS6155739A (ja) | 手続区画サイズの決定方式 | |
| JPS63213035A (ja) | プログラマブル制御装置の制御方法 | |
| JPH04205039A (ja) | 複数osにおける共有ファイル排他制御方式 | |
| JPH04314130A (ja) | 直接編成ファイルへの入出力方法 | |
| JPH03246654A (ja) | データ転送制御方法 | |
| JPH03276332A (ja) | ロードモジュール結合方式 | |
| JPS63241641A (ja) | 仮想計算機システムにおける入出力制御方式 | |
| JPS63249243A (ja) | 二次記憶情報セ−ブ方式 | |
| JPS63153640A (ja) | オブジエクトモジユ−ル出力方式 | |
| JPH01220051A (ja) | 情報処理装置 | |
| JPH0844606A (ja) | 分散データベースシステム集計処理方式 | |
| JPH0281239A (ja) | 仮想計算機システムにおけるファイル共用制御方式 |