JPH0520091A - レジスタ割り当て方式 - Google Patents
レジスタ割り当て方式Info
- Publication number
- JPH0520091A JPH0520091A JP17295191A JP17295191A JPH0520091A JP H0520091 A JPH0520091 A JP H0520091A JP 17295191 A JP17295191 A JP 17295191A JP 17295191 A JP17295191 A JP 17295191A JP H0520091 A JPH0520091 A JP H0520091A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- register
- built
- intermediate text
- program
- 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 abstract description 77
- 238000010348 incorporation Methods 0.000 abstract 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【構成】 コンパイラ2は、ソースプログラム1を翻訳
してオブジェクトプログラム3を生成する。解析部21
は、ソースプログラム1を読み込み、中間テキスト24
を生成する。レジスタ割り当て部22は、引用している
組込み手続きが使用しているレジスタを避けて、中間テ
キスト24にレジスタを割り当てる。オブジュクトコー
ド生成部23は、中間テキスト24を読み込み、オブジ
ェクトコードを生成する。 【効果】 組込み手続きの入口で、使用しているレジス
タをセーブし、出口でリストアする必要がなくなり、オ
ブジェクトプログラムにおける組込み手続きの呼出し時
の性能を向上することができる。
してオブジェクトプログラム3を生成する。解析部21
は、ソースプログラム1を読み込み、中間テキスト24
を生成する。レジスタ割り当て部22は、引用している
組込み手続きが使用しているレジスタを避けて、中間テ
キスト24にレジスタを割り当てる。オブジュクトコー
ド生成部23は、中間テキスト24を読み込み、オブジ
ェクトコードを生成する。 【効果】 組込み手続きの入口で、使用しているレジス
タをセーブし、出口でリストアする必要がなくなり、オ
ブジェクトプログラムにおける組込み手続きの呼出し時
の性能を向上することができる。
Description
【0001】
【産業上の利用分野】本発明はレジスタ割り当て方式に
関し、特にシステム組込み手続き引用を含む高級言語の
プログラムをコンパイラにより翻訳してオブジェクトプ
ログラムを生成する際のレジスタ割り当て方式に関す
る。
関し、特にシステム組込み手続き引用を含む高級言語の
プログラムをコンパイラにより翻訳してオブジェクトプ
ログラムを生成する際のレジスタ割り当て方式に関す
る。
【0002】
【従来の技術】従来のレジスタ割り当て方式は、組込み
手続きが引用された場合に、組込み手続きの入口でセー
ブし、出口でリストアしているものとしてレジスタの割
り当てをしていた。あるいは、組込み手続きを呼び出す
前に組込み手続きでそのレジスタを使用しているか否か
にかかわらず、組込み手続きを呼び出している手続きで
使用しているレジスタをセーブし、呼び出し後にそのレ
ジスタをリストアしていた。
手続きが引用された場合に、組込み手続きの入口でセー
ブし、出口でリストアしているものとしてレジスタの割
り当てをしていた。あるいは、組込み手続きを呼び出す
前に組込み手続きでそのレジスタを使用しているか否か
にかかわらず、組込み手続きを呼び出している手続きで
使用しているレジスタをセーブし、呼び出し後にそのレ
ジスタをリストアしていた。
【0003】
【発明が解決しようとする課題】上述した従来のレジス
タ割り当て方式は、レジスタの割り当て時に、組込み手
続きで使用されているレジスタとは無関係に、レジスタ
番号を決定している。
タ割り当て方式は、レジスタの割り当て時に、組込み手
続きで使用されているレジスタとは無関係に、レジスタ
番号を決定している。
【0004】即ち、組込み手続きが引用された場合に、
組込み手続き内で使用されているレジスタであるか否か
にかかわらず、その組込み手続き引用にまたがってレジ
スタの割り当てをしているので、組込み手続きでは、組
込み手続きの入口で、その組込み手続で使用するレジス
タをセーブし、出口でそのレジスタをリストアしなくて
はならず、オブジェクトプログラムにおける組込み手続
き引用時の性能低下の要因となっているという問題点が
ある。
組込み手続き内で使用されているレジスタであるか否か
にかかわらず、その組込み手続き引用にまたがってレジ
スタの割り当てをしているので、組込み手続きでは、組
込み手続きの入口で、その組込み手続で使用するレジス
タをセーブし、出口でそのレジスタをリストアしなくて
はならず、オブジェクトプログラムにおける組込み手続
き引用時の性能低下の要因となっているという問題点が
ある。
【0005】また、組込み手続きを呼び出す側で使用レ
ジスタをセーブしたりリストアしたりする場合も、その
組込み手続きで使用しているレジスタであるか否かにか
かわらずセーブやリストアを行わなければならないの
で、同様に、オブジェクトプログラムにおける組込み手
続き引用時の性能低下の要因となっているという問題点
がある。
ジスタをセーブしたりリストアしたりする場合も、その
組込み手続きで使用しているレジスタであるか否かにか
かわらずセーブやリストアを行わなければならないの
で、同様に、オブジェクトプログラムにおける組込み手
続き引用時の性能低下の要因となっているという問題点
がある。
【0006】
【課題を解決するための手段】本発明のレジスタ割り当
て方式は、高級言語からなるソースプログラムを翻訳し
てオブジェクトプログラムを生成するコンパイラと、生
成されたオブジェクトプログラム及び該オブジェクトプ
ログラムで引用しているシステム組込み手続きを結合し
て実行形式プログラムを生成するリンカとを備える計算
機システムのレジスタ割り当て方式において、前記コン
パイラは、ソースプログラムを読み込み中間テキストを
生成する解析部と、該中間テキストを読み込みレジスタ
を割り当てるレジスタ割り当て部と、レジスタの割り当
てがなされた中間テキストを読み込みオブジェクトコー
ドを生成するオブジェクトコード生成部とを備えるとと
もに、前記レジスタ割り当て部は、組込み手続きを引用
する中間テキストであるか否かを認識する組込み手続き
認識部と、組込み手続きを引用しているならば、組込み
手続き名から該組込み手続きの内部で使用するレジスタ
番号のテーブルを検索し、引用している組込み手続きで
使用するレジスタ番号を読み込み、組込み手続き引用に
またがってレジスタを割り当てる際に、組込み手続き内
部で使用するレジスタを割り当てないようにする組込み
手続き引用時のレジスタ番号決定部と、組込み手続きを
引用していないならば、通常にレジスタ番号を決定する
通常レジスタ番号決定部とを備える、ことにより構成さ
れている。
て方式は、高級言語からなるソースプログラムを翻訳し
てオブジェクトプログラムを生成するコンパイラと、生
成されたオブジェクトプログラム及び該オブジェクトプ
ログラムで引用しているシステム組込み手続きを結合し
て実行形式プログラムを生成するリンカとを備える計算
機システムのレジスタ割り当て方式において、前記コン
パイラは、ソースプログラムを読み込み中間テキストを
生成する解析部と、該中間テキストを読み込みレジスタ
を割り当てるレジスタ割り当て部と、レジスタの割り当
てがなされた中間テキストを読み込みオブジェクトコー
ドを生成するオブジェクトコード生成部とを備えるとと
もに、前記レジスタ割り当て部は、組込み手続きを引用
する中間テキストであるか否かを認識する組込み手続き
認識部と、組込み手続きを引用しているならば、組込み
手続き名から該組込み手続きの内部で使用するレジスタ
番号のテーブルを検索し、引用している組込み手続きで
使用するレジスタ番号を読み込み、組込み手続き引用に
またがってレジスタを割り当てる際に、組込み手続き内
部で使用するレジスタを割り当てないようにする組込み
手続き引用時のレジスタ番号決定部と、組込み手続きを
引用していないならば、通常にレジスタ番号を決定する
通常レジスタ番号決定部とを備える、ことにより構成さ
れている。
【0007】
【実施例】次に、本発明の実施例について、図面を参照
して説明する。
して説明する。
【0008】図1は、本発明のレジスタ割り当て方式の
一実施例を示すブロック図である。
一実施例を示すブロック図である。
【0009】図1に示すように、まず、コンパイラ2内
の解析部21は、ソースプログラム1を読み込み、中間
テキスト24を生成する。
の解析部21は、ソースプログラム1を読み込み、中間
テキスト24を生成する。
【0010】また、レジスタ割り当て部22は、中間テ
キスト24をもとにして、レジスタ番号を割り当てる。
キスト24をもとにして、レジスタ番号を割り当てる。
【0011】即ち、組込み手続き認識部221は、組込
み手続き判定部222により組込み手続きを呼び出して
いる中間テキストであるか否かを認識し、組込み手続き
を呼び出している中間テキストであると認識した場合に
は、組込み手続き使用レジスタの検索読み込み部224
で、各組込み手続きごとに使用しているレジスタ番号を
保持した組込み手続き使用レジスタのテーブル226を
検索し、この組込み手続きが使用しているレジスタ番号
を取り出し、組込み手続き引用時のレジスタ番号決定部
225で、組込み手続き引用にまたがって、組込み手続
きの内部で使用しているレジスタの割り当てをしないよ
うにレジスタ番号を決定して中間テキスト24に設定す
る。
み手続き判定部222により組込み手続きを呼び出して
いる中間テキストであるか否かを認識し、組込み手続き
を呼び出している中間テキストであると認識した場合に
は、組込み手続き使用レジスタの検索読み込み部224
で、各組込み手続きごとに使用しているレジスタ番号を
保持した組込み手続き使用レジスタのテーブル226を
検索し、この組込み手続きが使用しているレジスタ番号
を取り出し、組込み手続き引用時のレジスタ番号決定部
225で、組込み手続き引用にまたがって、組込み手続
きの内部で使用しているレジスタの割り当てをしないよ
うにレジスタ番号を決定して中間テキスト24に設定す
る。
【0012】一方、組込み手続きを呼び出していない中
間テキストである場合には、通常のレジスタ番号決定部
223で、通常のレジスタの割り当てを行ってレジスタ
番号を決定して中間テキスト24に設定する。
間テキストである場合には、通常のレジスタ番号決定部
223で、通常のレジスタの割り当てを行ってレジスタ
番号を決定して中間テキスト24に設定する。
【0013】なお、オブジェクトコード変換部23は、
中間テキスト24をもとにして、オブジェクトプログラ
ム3を生成する。
中間テキスト24をもとにして、オブジェクトプログラ
ム3を生成する。
【0014】以上に示すように、本実施例のレジスタ割
り当て方式は、組込み手続き引用時にまたがって、組込
み手続き内で使用しているレジスタの割り当てをしない
ことにより、組込み手続きの入口でその組込み手続きが
使用するレジスタをセーブし、出口でリストアする必要
がなくなり、オブジェクトプログラムの性能を向上する
ことができる。
り当て方式は、組込み手続き引用時にまたがって、組込
み手続き内で使用しているレジスタの割り当てをしない
ことにより、組込み手続きの入口でその組込み手続きが
使用するレジスタをセーブし、出口でリストアする必要
がなくなり、オブジェクトプログラムの性能を向上する
ことができる。
【0015】
【発明の効果】以上説明したように、本発明のレジスタ
割り当て方式は、レジスタの割り当て時に、組込み手続
きが引用されているかを判断し、引用されている場合に
は、組込み手続き引用にまたがって、組込み手続きの内
部で使用しているレジスタの割り当てをしないことによ
り、組込み手続きの入口で、使用しているレジスタをセ
ーブし、出口でリストアする必要がなくなり、オブジェ
クトプログラムにおける組込み手続きの呼び出し時の性
能を向上することができるという効果を有している。
割り当て方式は、レジスタの割り当て時に、組込み手続
きが引用されているかを判断し、引用されている場合に
は、組込み手続き引用にまたがって、組込み手続きの内
部で使用しているレジスタの割り当てをしないことによ
り、組込み手続きの入口で、使用しているレジスタをセ
ーブし、出口でリストアする必要がなくなり、オブジェ
クトプログラムにおける組込み手続きの呼び出し時の性
能を向上することができるという効果を有している。
【図1】本発明のレジスタ割り当て方式の一実施例を示
すブロック図である。
すブロック図である。
1 ソースプログラム 2 コンパイラ 21 解析部 22 レジスタ割り当て部 221 組込み手続き認識部 222 組込み手続き判定部 223 通常のレジスタ番号決定部 224 組込み手続き使用レジスタの検索読み込み部 225 組込み手続き引用時のレジスタ番号決定部 226 組込み手続き使用レジスタのテーブル 23 オブジェクトコード生成部 24 中間テキスト 3 オブジェクトプログラム
Claims (1)
- 【特許請求の範囲】 【請求項1】 高級言語からなるソースプログラムを翻
訳してオブジェクトプログラムを生成するコンパイラ
と、生成されたオブジェクトプログラム及び該オブジェ
クトプログラムで引用しているシステム組込み手続きを
結合して実行形式プログラムを生成するリンカとを備え
る計算機システムのレジスタ割り当て方式において、 前記コンパイラは、ソースプログラムを読み込み中間テ
キストを生成する解析部と、該中間テキストを読み込み
レジスタを割り当てるレジスタ割り当て部と、レジスタ
の割り当てがなされた中間テキストを読み込みオブジェ
クトコードを生成するオブジェクトコード生成部とを備
えるとともに、 前記レジスタ割り当て部は、組込み手続きを引用する中
間テキストであるか否かを認識する組込み手続き認識部
と、組込み手続きを引用しているならば、組込み手続き
名から該組込み手続きの内部で使用するレジスタ番号の
テーブルを検索し、引用している組込み手続きで使用す
るレジスタ番号を読み込み、組込み手続き引用にまたが
ってレジスタを割り当てる際に、組込み手続き内部で使
用するレジスタを割り当てないようにする組込み手続き
引用時のレジスタ番号決定部と、組込み手続きを引用し
ていないならば、通常にレジスタ番号を決定する通常レ
ジスタ番号決定部とを備える、 ことを特徴とするレジスタ割り当て方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17295191A JPH0520091A (ja) | 1991-07-15 | 1991-07-15 | レジスタ割り当て方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17295191A JPH0520091A (ja) | 1991-07-15 | 1991-07-15 | レジスタ割り当て方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0520091A true JPH0520091A (ja) | 1993-01-29 |
Family
ID=15951385
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17295191A Pending JPH0520091A (ja) | 1991-07-15 | 1991-07-15 | レジスタ割り当て方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0520091A (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62267831A (ja) * | 1986-05-16 | 1987-11-20 | Nec Corp | プログラミング言語における組込み関数の演算制御方式 |
| JPH0391037A (ja) * | 1989-09-04 | 1991-04-16 | Hitachi Ltd | 退避レジスタ決定方法 |
-
1991
- 1991-07-15 JP JP17295191A patent/JPH0520091A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62267831A (ja) * | 1986-05-16 | 1987-11-20 | Nec Corp | プログラミング言語における組込み関数の演算制御方式 |
| JPH0391037A (ja) * | 1989-09-04 | 1991-04-16 | Hitachi Ltd | 退避レジスタ決定方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5815719A (en) | Method and apparatus for easy insertion of assembler code for optimization | |
| US6625806B1 (en) | Language processing method and language processing system improving use efficiency of cache memory | |
| JP2904099B2 (ja) | コンパイル装置およびコンパイル方法 | |
| JPH0520091A (ja) | レジスタ割り当て方式 | |
| JP3327674B2 (ja) | プログラム翻訳装置及び方法 | |
| JP2932812B2 (ja) | 言語処理プログラム実行装置 | |
| JPH04344536A (ja) | レジスタ割当て方式 | |
| JPH0991151A (ja) | コンパイル装置及びプロセッサ装置 | |
| JPH08272621A (ja) | 動的メモリ領域を確保する関数呼出しの処理方法 | |
| JP3157737B2 (ja) | コンパイル装置 | |
| EP0756231A1 (en) | Method of allocating memory to variables | |
| JP3018666B2 (ja) | 言語処理装置 | |
| JP3161887B2 (ja) | 値定義場所決定装置 | |
| JPS63180150A (ja) | 入出力バッファ用領域獲得処理方式 | |
| KR0162759B1 (ko) | 인텔 처리기의 메모리 관리 유니트를 이용한 확장된 가상주소공간 구축방법 | |
| JPH05324281A (ja) | アドレス割当変更方法 | |
| JPH0650470B2 (ja) | 動的ディスパッチング方式 | |
| JPH02105224A (ja) | コンパイラにおけるデータ割付け方式 | |
| JP2001134447A (ja) | コンパイル方法、および、コンパイル用プログラムを記録した記録媒体 | |
| JPH06242963A (ja) | レジスタ割付け方式 | |
| JPH0371233A (ja) | コンパイラにおける最適データ割付け方式 | |
| JPH03109642A (ja) | コンパイル装置 | |
| JPH02133825A (ja) | コンパイル方式 | |
| JPH06324882A (ja) | コンパイラ装置 | |
| JPH05241851A (ja) | 定数最適割り付け方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19990406 |