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
Application number
JP11761986A
Other languages
English (en)
Inventor
Toru Miwa
徹 三輪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP11761986A priority Critical patent/JPS62274431A/ja
Publication of JPS62274431A publication Critical patent/JPS62274431A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は高水準言語記述プログラムに対するコンパイラ
がデータを自動的にレジスタに固定する自動レジスタ固
定方式に関する。
〔従来の技術〕
従来、この種の高水準言語記述プログラムのレジスタ固
定方式においては、高水準言語でもプログラムの実行性
能が特に要求される分野では、プログラムの中にハード
ウェアの物理レジスタをデータとして使用することを宣
言することKより。
データのレジスタ固定を行っていた。
又、フン・母イラで自動的にレジスタ固定した場合、プ
ログラム上のデータの静的な出現回数の頻度の高いもの
をレジスタ固定の対象データとしていた。
〔発明が解決しようとする問題点〕
上述した従来のレジスタ固定力゛式では、ノ・−ドウエ
アの物理レジスタを宣言するので、ハードウェア機種間
の移植性が損われていた。また、物理レジスタを直接意
識しているので、プログラム間のインタフェースが煩雑
になシ、プログラムの信頼性を低下させてい念。
又、コン/4’イラが自動的にレジスタ固定した場合で
も、動的な参照回数で頻度を表わしていない為、目的プ
ログラムを実行させたときに必ずしも参照の多いデータ
がレジスタに固定されないという欠点があった。
〔問題点を解決するための手段〕
本発明による高水準言語記述プログラムにおける自動レ
ジスタ固定方式は、高水準言語記述プログラムのデータ
の動的な参照回数を予測して参照情報テーブルに登録す
るデータ動的参照回数予測登録手段と、ハードウェアに
有しているレジスタの空き状態を管理するレジスタ管理
手段と、参照情報テーブルの情報とレジスタの空き状態
により。
動的参照回数の多いデータをレジスタに固定するレジス
タ固定決定手段と、レジスタ固定決定手段により決定さ
れたデータについて、目的プログラムのプロローグ処理
で当該データをレジスタに固定するコードを生成するレ
ジスタ固定コード生成手段と、目的プログラムのエピロ
ーダ処理でレジスタに固定されたデータの内容をメモリ
上に回復するコードを生成するレジスタ解除コード生成
手段とを有する。
〔実施例〕
以下2本発明の実施例について図面を参照して詳細に説
明する。
第1図を参照すると2本発明による自動レジスタ固定方
式の適用されるコンパイラ11は2字句/構文/意味解
析処理部1.最適化処理部8.参照情報テーブル7、コ
ード生成部9.及び目的プログラム出力処理部10から
構成されている。最適化処理部8はデータ動的参照回数
予測登録手段2を含む。コード生成部9は、レジスタ管
理手段3、レジスタ固定決定手段4.レジスタ固定コー
ド生成手段5.及びレジスタ解除コード生成手段6を含
む。
次に、第1ヒ第7図をも参照して1本発明の動作につい
て説明する。
まず、コンパイラ11は、入力した原始プログラムを字
句/構文/意味解析処理部1で、原始プログラムが文法
的に正しいことをチェックする。
その後、コンパイラ11は、最適化処理部2において、
中間言語(コンパイラの中で用いる処理用インタフェー
ス言語)処理中に、原始プログラム中の各文で使用して
いるデータに対してデータ動的参照回数予測登録手段2
を用いることにより。
各データについての使用頻度を予測する。
第2図を参照して、データ動的参照回数予測登録手段2
は、ステラf21で現在処理中の文が繰返し構造の中に
あるか否か全判定し、ステップ22及び23で各状態に
おける動的参照回数を予測する。
第7図をも参照して1次にデータ動的参照回数予測登録
手段2は、ステップ24〜27で、この予測した情報を
記憶する為に、参照情報チーグル7に、データの種別を
示すデータ属性分類コード71、原始プログラム全体で
の1つのデータに対する動的参照予測回数72及び各デ
ータに対する桁数又は大きさ等の各種属性の詳細情報7
3を設定する。
次にコンパイラ11は、コード生成部9を起動する。コ
ード生成部9では、原始プログラムの各文について機械
語コードを生成するが、その前処理として、レジスタ管
理手段3によりブログラム全体のレジスタの使用法を決
定する。
第3図を参照して、レジスタ管理手段3は、ステップ3
1でレジスタを浮動用、インデックス用等に分類し、ス
テラf32でデータに固定するレジスタがあれば固定用
レジスタとする空きレジスタ記憶処理を行う。
第4図を参照して、その後、レジスタ固定決定手段4は
、ステップ41でレジスタ管理手段3で固定用空きレジ
スタが確保されたか否かを検査し。
確保されていれば、ステップ42で参照情報テープル7
を参照してレジスターに固定可能な属性をもつデータが
登録されているか否かを検査し、登録されているときは
、ステップ43でデータの動的参照予測回数がレジスタ
に固定する一定水準の回数を越えていれば当該データを
レジスタに固定することを記憶する。
さらに、コード生成部9は、原始プログラムの各文の機
械語コードを生成する時点で、レジスタ固定コード生成
手段5によりデータをレジスタに固定する為のコードを
生成する。
第5図を参照すると、レジスタ固定コード生成手段5は
、ステップ51〜52で、データとレジスタの対応関係
設定43により記憶された情報を基に目的プログラムの
プロローグ処理に、データをレジスタに固定する為のコ
ードを出力する。
また、コード生成部9は、レジスタ解除コード生成手段
6によりレジスタ解除コードを生成する。
第6図を参照すると、レジスタ解除コード生成手段6は
、ステップ61〜62で、目的プログラムのエピローダ
処理に、レジスタの内容をメモリ上のデータに回復する
為のコードを出力する。
最後にコンパイラ11は、データがレジスタに固定され
た効率のよい機械語コードを、目的プログラム出力処理
部10により目的プログラムとして出力する。
次に、第8図を参照して、高水準言語記述プログラムに
おける自動レジスタ固定方式に関して。
従来方式と本発明を適用した場合の具体的な効果につい
て説明する。
第8図の原始プログラムにおける各データの参照回数は
、従来・奔露の自動レジスタ固定方式では。
繰返し文を考慮していないので、それぞれデータA・・
・2回、データB・・・4回、データC・・・3回とな
シ、データBが最頻出のデータとなる。
これに対し2本発明の自動レジスタ固定方式は。
繰返し文を考慮に入れているので、参照回数は。
それぞれ データA・・・11回、データB・・・4回、データC
・・・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図

Claims (1)

    【特許請求の範囲】
  1. 1、高水準言語記述プログラムのデータの動的な参照回
    数を予測して参照情報テーブルに登録するデータ動的参
    照回数予測登録手段と、ハードウェアに有しているレジ
    スタの空き状態を管理するレジスタ管理手段と、前記参
    照情報テーブルの情報と前記レジスタの空き状態により
    、動的参照回数の多いデータをレジスタに固定するレジ
    スタ固定決定手段と、該レジスタ固定決定手段により決
    定されたデータについて、目的プログラムのプロローグ
    処理で当該データをレジスタに固定するコードを生成す
    るレジスタ固定コード生成手段と、目的プログラムのエ
    ピローダ処理でレジスタに固定された前記データの内容
    をメモリ上に回復するコードを生成するレジスタ解除コ
    ード生成手段とを有することを特徴とする高水準言語記
    述プログラムにおける自動レジスタ固定方式。
JP11761986A 1986-05-23 1986-05-23 高水準言語記述プログラムにおける自動レジスタ固定方式 Pending JPS62274431A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01197867A (ja) * 1988-02-02 1989-08-09 Ibiden Co Ltd マルチプロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
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