JPS62274431A - 高水準言語記述プログラムにおける自動レジスタ固定方式 - Google Patents
高水準言語記述プログラムにおける自動レジスタ固定方式Info
- Publication number
- JPS62274431A JPS62274431A JP11761986A JP11761986A JPS62274431A JP S62274431 A JPS62274431 A JP S62274431A JP 11761986 A JP11761986 A JP 11761986A JP 11761986 A JP11761986 A JP 11761986A JP S62274431 A JPS62274431 A JP S62274431A
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- program
- code
- fixing
- 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
- 238000000034 method Methods 0.000 claims description 14
- 238000005457 optimization Methods 0.000 abstract description 5
- 238000007781 pre-processing Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000862969 Stella Species 0.000 description 1
- 235000019892 Stellar Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は高水準言語記述プログラムに対するコンパイラ
がデータを自動的にレジスタに固定する自動レジスタ固
定方式に関する。
がデータを自動的にレジスタに固定する自動レジスタ固
定方式に関する。
従来、この種の高水準言語記述プログラムのレジスタ固
定方式においては、高水準言語でもプログラムの実行性
能が特に要求される分野では、プログラムの中にハード
ウェアの物理レジスタをデータとして使用することを宣
言することKより。
定方式においては、高水準言語でもプログラムの実行性
能が特に要求される分野では、プログラムの中にハード
ウェアの物理レジスタをデータとして使用することを宣
言することKより。
データのレジスタ固定を行っていた。
又、フン・母イラで自動的にレジスタ固定した場合、プ
ログラム上のデータの静的な出現回数の頻度の高いもの
をレジスタ固定の対象データとしていた。
ログラム上のデータの静的な出現回数の頻度の高いもの
をレジスタ固定の対象データとしていた。
上述した従来のレジスタ固定力゛式では、ノ・−ドウエ
アの物理レジスタを宣言するので、ハードウェア機種間
の移植性が損われていた。また、物理レジスタを直接意
識しているので、プログラム間のインタフェースが煩雑
になシ、プログラムの信頼性を低下させてい念。
アの物理レジスタを宣言するので、ハードウェア機種間
の移植性が損われていた。また、物理レジスタを直接意
識しているので、プログラム間のインタフェースが煩雑
になシ、プログラムの信頼性を低下させてい念。
又、コン/4’イラが自動的にレジスタ固定した場合で
も、動的な参照回数で頻度を表わしていない為、目的プ
ログラムを実行させたときに必ずしも参照の多いデータ
がレジスタに固定されないという欠点があった。
も、動的な参照回数で頻度を表わしていない為、目的プ
ログラムを実行させたときに必ずしも参照の多いデータ
がレジスタに固定されないという欠点があった。
本発明による高水準言語記述プログラムにおける自動レ
ジスタ固定方式は、高水準言語記述プログラムのデータ
の動的な参照回数を予測して参照情報テーブルに登録す
るデータ動的参照回数予測登録手段と、ハードウェアに
有しているレジスタの空き状態を管理するレジスタ管理
手段と、参照情報テーブルの情報とレジスタの空き状態
により。
ジスタ固定方式は、高水準言語記述プログラムのデータ
の動的な参照回数を予測して参照情報テーブルに登録す
るデータ動的参照回数予測登録手段と、ハードウェアに
有しているレジスタの空き状態を管理するレジスタ管理
手段と、参照情報テーブルの情報とレジスタの空き状態
により。
動的参照回数の多いデータをレジスタに固定するレジス
タ固定決定手段と、レジスタ固定決定手段により決定さ
れたデータについて、目的プログラムのプロローグ処理
で当該データをレジスタに固定するコードを生成するレ
ジスタ固定コード生成手段と、目的プログラムのエピロ
ーダ処理でレジスタに固定されたデータの内容をメモリ
上に回復するコードを生成するレジスタ解除コード生成
手段とを有する。
タ固定決定手段と、レジスタ固定決定手段により決定さ
れたデータについて、目的プログラムのプロローグ処理
で当該データをレジスタに固定するコードを生成するレ
ジスタ固定コード生成手段と、目的プログラムのエピロ
ーダ処理でレジスタに固定されたデータの内容をメモリ
上に回復するコードを生成するレジスタ解除コード生成
手段とを有する。
以下2本発明の実施例について図面を参照して詳細に説
明する。
明する。
第1図を参照すると2本発明による自動レジスタ固定方
式の適用されるコンパイラ11は2字句/構文/意味解
析処理部1.最適化処理部8.参照情報テーブル7、コ
ード生成部9.及び目的プログラム出力処理部10から
構成されている。最適化処理部8はデータ動的参照回数
予測登録手段2を含む。コード生成部9は、レジスタ管
理手段3、レジスタ固定決定手段4.レジスタ固定コー
ド生成手段5.及びレジスタ解除コード生成手段6を含
む。
式の適用されるコンパイラ11は2字句/構文/意味解
析処理部1.最適化処理部8.参照情報テーブル7、コ
ード生成部9.及び目的プログラム出力処理部10から
構成されている。最適化処理部8はデータ動的参照回数
予測登録手段2を含む。コード生成部9は、レジスタ管
理手段3、レジスタ固定決定手段4.レジスタ固定コー
ド生成手段5.及びレジスタ解除コード生成手段6を含
む。
次に、第1ヒ第7図をも参照して1本発明の動作につい
て説明する。
て説明する。
まず、コンパイラ11は、入力した原始プログラムを字
句/構文/意味解析処理部1で、原始プログラムが文法
的に正しいことをチェックする。
句/構文/意味解析処理部1で、原始プログラムが文法
的に正しいことをチェックする。
その後、コンパイラ11は、最適化処理部2において、
中間言語(コンパイラの中で用いる処理用インタフェー
ス言語)処理中に、原始プログラム中の各文で使用して
いるデータに対してデータ動的参照回数予測登録手段2
を用いることにより。
中間言語(コンパイラの中で用いる処理用インタフェー
ス言語)処理中に、原始プログラム中の各文で使用して
いるデータに対してデータ動的参照回数予測登録手段2
を用いることにより。
各データについての使用頻度を予測する。
第2図を参照して、データ動的参照回数予測登録手段2
は、ステラf21で現在処理中の文が繰返し構造の中に
あるか否か全判定し、ステップ22及び23で各状態に
おける動的参照回数を予測する。
は、ステラf21で現在処理中の文が繰返し構造の中に
あるか否か全判定し、ステップ22及び23で各状態に
おける動的参照回数を予測する。
第7図をも参照して1次にデータ動的参照回数予測登録
手段2は、ステップ24〜27で、この予測した情報を
記憶する為に、参照情報チーグル7に、データの種別を
示すデータ属性分類コード71、原始プログラム全体で
の1つのデータに対する動的参照予測回数72及び各デ
ータに対する桁数又は大きさ等の各種属性の詳細情報7
3を設定する。
手段2は、ステップ24〜27で、この予測した情報を
記憶する為に、参照情報チーグル7に、データの種別を
示すデータ属性分類コード71、原始プログラム全体で
の1つのデータに対する動的参照予測回数72及び各デ
ータに対する桁数又は大きさ等の各種属性の詳細情報7
3を設定する。
次にコンパイラ11は、コード生成部9を起動する。コ
ード生成部9では、原始プログラムの各文について機械
語コードを生成するが、その前処理として、レジスタ管
理手段3によりブログラム全体のレジスタの使用法を決
定する。
ード生成部9では、原始プログラムの各文について機械
語コードを生成するが、その前処理として、レジスタ管
理手段3によりブログラム全体のレジスタの使用法を決
定する。
第3図を参照して、レジスタ管理手段3は、ステップ3
1でレジスタを浮動用、インデックス用等に分類し、ス
テラf32でデータに固定するレジスタがあれば固定用
レジスタとする空きレジスタ記憶処理を行う。
1でレジスタを浮動用、インデックス用等に分類し、ス
テラf32でデータに固定するレジスタがあれば固定用
レジスタとする空きレジスタ記憶処理を行う。
第4図を参照して、その後、レジスタ固定決定手段4は
、ステップ41でレジスタ管理手段3で固定用空きレジ
スタが確保されたか否かを検査し。
、ステップ41でレジスタ管理手段3で固定用空きレジ
スタが確保されたか否かを検査し。
確保されていれば、ステップ42で参照情報テープル7
を参照してレジスターに固定可能な属性をもつデータが
登録されているか否かを検査し、登録されているときは
、ステップ43でデータの動的参照予測回数がレジスタ
に固定する一定水準の回数を越えていれば当該データを
レジスタに固定することを記憶する。
を参照してレジスターに固定可能な属性をもつデータが
登録されているか否かを検査し、登録されているときは
、ステップ43でデータの動的参照予測回数がレジスタ
に固定する一定水準の回数を越えていれば当該データを
レジスタに固定することを記憶する。
さらに、コード生成部9は、原始プログラムの各文の機
械語コードを生成する時点で、レジスタ固定コード生成
手段5によりデータをレジスタに固定する為のコードを
生成する。
械語コードを生成する時点で、レジスタ固定コード生成
手段5によりデータをレジスタに固定する為のコードを
生成する。
第5図を参照すると、レジスタ固定コード生成手段5は
、ステップ51〜52で、データとレジスタの対応関係
設定43により記憶された情報を基に目的プログラムの
プロローグ処理に、データをレジスタに固定する為のコ
ードを出力する。
、ステップ51〜52で、データとレジスタの対応関係
設定43により記憶された情報を基に目的プログラムの
プロローグ処理に、データをレジスタに固定する為のコ
ードを出力する。
また、コード生成部9は、レジスタ解除コード生成手段
6によりレジスタ解除コードを生成する。
6によりレジスタ解除コードを生成する。
第6図を参照すると、レジスタ解除コード生成手段6は
、ステップ61〜62で、目的プログラムのエピローダ
処理に、レジスタの内容をメモリ上のデータに回復する
為のコードを出力する。
、ステップ61〜62で、目的プログラムのエピローダ
処理に、レジスタの内容をメモリ上のデータに回復する
為のコードを出力する。
最後にコンパイラ11は、データがレジスタに固定され
た効率のよい機械語コードを、目的プログラム出力処理
部10により目的プログラムとして出力する。
た効率のよい機械語コードを、目的プログラム出力処理
部10により目的プログラムとして出力する。
次に、第8図を参照して、高水準言語記述プログラムに
おける自動レジスタ固定方式に関して。
おける自動レジスタ固定方式に関して。
従来方式と本発明を適用した場合の具体的な効果につい
て説明する。
て説明する。
第8図の原始プログラムにおける各データの参照回数は
、従来・奔露の自動レジスタ固定方式では。
、従来・奔露の自動レジスタ固定方式では。
繰返し文を考慮していないので、それぞれデータA・・
・2回、データB・・・4回、データC・・・3回とな
シ、データBが最頻出のデータとなる。
・2回、データB・・・4回、データC・・・3回とな
シ、データBが最頻出のデータとなる。
これに対し2本発明の自動レジスタ固定方式は。
繰返し文を考慮に入れているので、参照回数は。
それぞれ
データA・・・11回、データB・・・4回、データC
・・・3回となり、繰返し文中にあるデータAが最頻出
のデータとなる。従って、固定レジスタが1つのときは
、従来方式ではデータBが固定され1本発明の方式では
データAが固定される。
・・・3回となり、繰返し文中にあるデータAが最頻出
のデータとなる。従って、固定レジスタが1つのときは
、従来方式ではデータBが固定され1本発明の方式では
データAが固定される。
この様に2本発明の方式では、データの動的参照回数を
予測することによりレジスタに固定するデータを抽出し
ているので、最適なレジスタ固定が可能である。
予測することによりレジスタに固定するデータを抽出し
ているので、最適なレジスタ固定が可能である。
以上説明したように本発明は、高水準言語記述プログラ
ムに対して動的な参照回数を予測して自動レジスタ固定
を行うことにより、最適なレジスタ固定を行うことが可
能となり、プログラムの信頼性及び移植性を損わずに高
水準言語処理プログラムの実効効率を向上させることが
できる。また。
ムに対して動的な参照回数を予測して自動レジスタ固定
を行うことにより、最適なレジスタ固定を行うことが可
能となり、プログラムの信頼性及び移植性を損わずに高
水準言語処理プログラムの実効効率を向上させることが
できる。また。
ハードウェアの物理レジスタを直接プログラムに書かな
いので、プログラムの読解性及び信頼性をも向上させる
ことができる。
いので、プログラムの読解性及び信頼性をも向上させる
ことができる。
第1図は本発明による自動レジスタ固定方式の適用され
るコンパイラの一実施例の構成を示したは第1図中のレ
ジスタ管理手段の動作を説明する為の流れ図、第4図は
第1図中のレジスタ固定決定手段の動作を説明する為の
流れ図、第5図は第1図中のレジスタ固定コード生成手
段の動作を説明する為の流れ図、第6図は第1図中のレ
ジスタ解除コード生成手段の動作を説明する為の流れ図
。 第7図は第1図中の参照情報テーブルの構成を示した図
、第8図は本発明の具体的な効果を説明する為の原始プ
ログラムの一例を示した図である。 1・・・字句/構文/意味解析処理部、2・・・データ
動的参照回数予測登録手段、3・・・レジスタ管理手段
、4・・・レジスタ固定決定手段、5・・・レジスタ、
固定コード生成手段、6・・・レジスタ解除コード生成
手段、7・・・参照情報テーブル、8・・・最適化処理
部。 9・・・コード生成部、10・・・目的プログラム出力
処第1図 第2図 第3図 第4図 第5図 第6図
るコンパイラの一実施例の構成を示したは第1図中のレ
ジスタ管理手段の動作を説明する為の流れ図、第4図は
第1図中のレジスタ固定決定手段の動作を説明する為の
流れ図、第5図は第1図中のレジスタ固定コード生成手
段の動作を説明する為の流れ図、第6図は第1図中のレ
ジスタ解除コード生成手段の動作を説明する為の流れ図
。 第7図は第1図中の参照情報テーブルの構成を示した図
、第8図は本発明の具体的な効果を説明する為の原始プ
ログラムの一例を示した図である。 1・・・字句/構文/意味解析処理部、2・・・データ
動的参照回数予測登録手段、3・・・レジスタ管理手段
、4・・・レジスタ固定決定手段、5・・・レジスタ、
固定コード生成手段、6・・・レジスタ解除コード生成
手段、7・・・参照情報テーブル、8・・・最適化処理
部。 9・・・コード生成部、10・・・目的プログラム出力
処第1図 第2図 第3図 第4図 第5図 第6図
Claims (1)
- 1、高水準言語記述プログラムのデータの動的な参照回
数を予測して参照情報テーブルに登録するデータ動的参
照回数予測登録手段と、ハードウェアに有しているレジ
スタの空き状態を管理するレジスタ管理手段と、前記参
照情報テーブルの情報と前記レジスタの空き状態により
、動的参照回数の多いデータをレジスタに固定するレジ
スタ固定決定手段と、該レジスタ固定決定手段により決
定されたデータについて、目的プログラムのプロローグ
処理で当該データをレジスタに固定するコードを生成す
るレジスタ固定コード生成手段と、目的プログラムのエ
ピローダ処理でレジスタに固定された前記データの内容
をメモリ上に回復するコードを生成するレジスタ解除コ
ード生成手段とを有することを特徴とする高水準言語記
述プログラムにおける自動レジスタ固定方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11761986A JPS62274431A (ja) | 1986-05-23 | 1986-05-23 | 高水準言語記述プログラムにおける自動レジスタ固定方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11761986A JPS62274431A (ja) | 1986-05-23 | 1986-05-23 | 高水準言語記述プログラムにおける自動レジスタ固定方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62274431A true JPS62274431A (ja) | 1987-11-28 |
Family
ID=14716234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11761986A Pending JPS62274431A (ja) | 1986-05-23 | 1986-05-23 | 高水準言語記述プログラムにおける自動レジスタ固定方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62274431A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01197867A (ja) * | 1988-02-02 | 1989-08-09 | Ibiden Co Ltd | マルチプロセッサシステム |
-
1986
- 1986-05-23 JP JP11761986A patent/JPS62274431A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01197867A (ja) * | 1988-02-02 | 1989-08-09 | Ibiden Co Ltd | マルチプロセッサシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5615357A (en) | System and method for verifying processor performance | |
AU774192B2 (en) | Method and apparatus for handling exceptions as normal control flow | |
US5437037A (en) | Simulation using compiled function description language | |
US20070079298A1 (en) | Thread-data affinity optimization using compiler | |
US7028291B2 (en) | Debugging method and debugging device | |
US7917899B2 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
JP2000347874A (ja) | レジスタ割当器を用いた呼出規則プロローグ・エピローグコード構築方法及び装置 | |
Kirner et al. | Transformation of path information for WCET analysis during compilation | |
US20120198428A1 (en) | Using Aliasing Information for Dynamic Binary Optimization | |
US6829760B1 (en) | Runtime symbol table for computer programs | |
Andronick et al. | Proof of OS scheduling behavior in the presence of interrupt-induced concurrency | |
US20060041875A1 (en) | Methods and apparatus for creating software basic block layouts | |
JPS62274431A (ja) | 高水準言語記述プログラムにおける自動レジスタ固定方式 | |
JP3049814B2 (ja) | マイクロコンピュータの言語処理装置 | |
Koller et al. | Efficient solving and exploration of scope ambiguities | |
CN102360306A (zh) | 高级语言代码中循环数据流图提取优化信息处理方法 | |
Danvy et al. | Resource-bounded partial evaluation | |
Huang | Worst-case timing analysis of concurrently executing DMA I/O and programs | |
JPS62204374A (ja) | 2倍演算最適化処理方式 | |
JP2556148B2 (ja) | ベクトルレジスタ割付け方式 | |
Padua et al. | Supercomputer programming environments | |
Thornley | Parallel programming with declarative Ada | |
Kim et al. | VLaTTe: a Java just-in-time compiler for VLIW with fast scheduling and register allocation | |
WO2000022522A1 (en) | Method for detecting equivalent instruction sequences | |
Tellez Espinosa | Formal verification of a real-time operating system |