JPS62105240A - 共通式の最適化処理に対するレジスタ割当て方式 - Google Patents

共通式の最適化処理に対するレジスタ割当て方式

Info

Publication number
JPS62105240A
JPS62105240A JP24541485A JP24541485A JPS62105240A JP S62105240 A JPS62105240 A JP S62105240A JP 24541485 A JP24541485 A JP 24541485A JP 24541485 A JP24541485 A JP 24541485A JP S62105240 A JPS62105240 A JP S62105240A
Authority
JP
Japan
Prior art keywords
store
register
temporary data
pseudo
processing
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.)
Granted
Application number
JP24541485A
Other languages
English (en)
Other versions
JPH0766333B2 (ja
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 JP24541485A priority Critical patent/JPH0766333B2/ja
Publication of JPS62105240A publication Critical patent/JPS62105240A/ja
Publication of JPH0766333B2 publication Critical patent/JPH0766333B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンパイラの共通式の最適化処即時のテンポ
ラリデータに対するレジスタ割当て方式〔従来の技術〕 従来、この種のレジスタ割当て方式は、共通式の結果の
テンポラリデータに対して同時期には、最大でも計算機
の物理的なレジスタの個数までしか使用できないため5
空きのレジスタが無くなった時点で共通式の関係を切る
ことによってレジスタを割当てる方式となっていた。
〔発明が解決しようとする問題点〕
上述した従来のレジスタ割当て方式は、共通式の最適化
処理において同時期に最適化可能な共通式の数が計算機
のレジスタの数を起えるか、または他の機械語を生成す
るためにレジスタが必要となった時にレジスタ不足を起
すので、この時点で有効な共通式の関係を切らなけわば
ならないという欠点がある。この欠点は、共通式の最適
化効率を著しく低下させている。
〔問題点を解決するための下段〕
本発明の共通式の最適化処理に対するレジスタ割当て方
式は、共通式の結果の値としてのテンポラリデータの定
義時に、テンポラリデータの値をレジスタ不足の事態に
備えてテンポラリデータを仮の退避命令により退避する
擬似ストア出力手段と、レジスタ要求管理におけるレジ
スタ不足−発生時に、擬似ストア出力手段で出力したテ
ンポラリデータの擬似ストアを後で実ストアに変更する
ことを記憶する実ストア変更指令手段と、退避命令によ
り退避されたデンボラリデタータを参照時にレジスタに
回復する回復命令出力手段と、実ストア変更指令手段に
より実際の退避命令か必要であると記憶されたテンポラ
リデータに対して擬似ストアを実ストアに変更出力する
実ストア出力手段と備えたことを特徴とする。
共通式の最適化処理に対するレジスタ割当て方式に関し
て従来のノ」一式と本発明を適用した場合との具体的な
例を説明する。
原始プログラムを次表に示し、本原始プログラムの添字
参照に対する添字計算の共通式の場合を例とする。
ここで、GJ、GRj、 GRkは汎用レジスタ、Ma
、 MbMeは配列の増分偵、SへVEi 、5AVE
j 、5AVEk ハレジスタ退避域、STは退避命令
、しは回復命令である。
本例では計算機で使用可能なレジスタの個数をGRi 
、GRj 、GRkの3個とする。従来の技術では計算
機のレジスタの個数分しか同時期にテンポラリデータが
レジスタトに存在できないため、区間してレジスタが個
別に3個必要となった場合、共通式であるはずの(式1
)、(式2)、(式3)が行番号+00の直前で計算さ
れ結果がレジスター1−に求まっているにも拘らず区間
してレジスタの内容が破壊されるため行番号200.2
10.220で再度添字計算が行われる。このように従
来の方式では共通式の最適化が計算機のレジスタの個数
による制約を受け、有効な共通式がレジスタの個数の制
約により無効となることがあった。
本発明の方式では、区間I、でテンポラリデータ用のレ
ジスタが破壊される場合、行番号+00のテンポラリ定
義の時点で退避命令STが出力される。
そのため、行番号200.210.220の参照ではレ
ジスタGni 、GRj 、GRiへの回復命令しを出
力するのみで添字計算の計算結果を参照できる。このよ
うに本方式では無限レジスタ割当てを行うことにより、
共通式の有効範囲をレジスタの個数に左右されることな
く保つことができる。
(実施例) 次に、本発明の実施例について図面を参照して説明する
第1図は本発明の共通式の最適化処理に対するレジスタ
割当て方式の一実施例を示す図である。
本実施例は、字句/構文/意味解析処理部1、共通式抽
出処理3を含む最適化処理部2.擬似ストア出力手段6
を有するテンポラリデータ定義処理5と実ストア変更指
令手段8を存するレジスタ要求管理処理7および回復命
令出力手段lOを有するテンポラリデータ参照処理9を
含むコード生成処理部4.実ストア出力手段I2を存す
るアドレス解決処理部11および目的プログラム出力処
理部13から構成されるコンパイラ14と、原始プログ
ラムファイル15.目的プログラムファイル16からな
る。(+は本発明の特徴どなる丁。段を示す)。
第2図は擬似ストア出力手段6を含むテンポラリデータ
定義処理5の詳細を示す図、第3図は実ストア変更指令
手段8を含むレジスタ要求管理処理7の詳細を承す図5
第4図は回復命令出力′ト段10を含むテンポラリデー
タ参照処理9の詳細を示す図、第5図は実ス;・ア出力
f段12の詳細を示す図、第6図は本発明の特徴である
擬似ストアを処理するための中間言1;Δ(コンパイラ
の中て用いる処理用インタフェース言語)の例を示す図
である。
次に、本実施例の動作について図面を参照して説明する
コンパイラI4は、原始プログラムを入力後、字句/構
文/意味解析部1で原始プログラムが文法的に正しいこ
とをチェックした後、最適化処理部2の共通式抽出処理
3が原始プログラム七に記述されている算術式の共通式
、添字参照に対する添字計算式の共通式および可変長レ
コード参照に対する可変長の長さ計算式の共通式を抽出
し、二回目以降の共通式を削除する。次にコンパイラ1
4は、機械語を生成するためにコード生成処理部4を起
動する。
コード生成処理部4は、機械語を生成する際に5テンポ
ラリデータの定義が現われると、テンポラリデータ定義
処理5呼び出す。テンポラリデータ定義処理5では、テ
ンポラリデータのテンポラリテーブルへの登録(ステッ
プ21)、データの所在場所がレジスタ上であることの
設定(ステップ22)、レジスタの同値関係設定処理(
ステップ23)を行った後、擬似ストア出力手段6によ
り、仮の退避命令である擬似ストアを出力する(ステッ
プ24)。
コート生成処理部4は、機械語を生成するためにレジス
タを割当てるレジスタ要求管理処理7を有するが、各中
間言語に対応した機械語生成中にテンポラリデータ用に
レジスタが同時期に要求され続けるとレジスタか不足す
る。そこでテンポラリデータ用のレジスタを確保するた
めに擬似ストア出力子「々6で出力した仮の退避命令で
ある擬似ストアを実際の退避命令に変更する指令を実ス
トア変更指示手段8により行う。まず、空のレジスタの
有無をチェックしくステップI’ll) 、 無ければ
破壊117のレジスタの有無をチェックしくステップ3
2)、有わばデータとレジスタの同値関係を解除しくス
テップ36)、無ければ、実ストア変更指令手段8によ
り、任意のテンポラリデータの擬似ストアを実ストアに
変更しくステップ33)、テンポラリデータとレジスタ
の同値関係を解除しくステップ34)、データの所在場
所を退避域上に設定する(ステップ35)。ステップ3
1て空のレジスタが有る場合およびステップ31i、:
15の後、レジスタ状態を使用中に設定しくステップ3
7)、返却!ノジスタ番号を設定する(ステップ3B)
さらにテンポラリデータ参照処理9ては、共通式のテン
ポラリデータの所在場所をチェックしくステップ4I)
、所在場所かレジスタ上であれば、テンポラリテーブル
の1該当レジスタ番号を返却し、該当するレジスタ参1
1μと−4−る(ステップ42)が、テンポラリデータ
定義からテンポラリデータ参照の間でレジスタの不足を
起した場合は退避命令によりデータの所在場所が退避域
上になっているため、回復命令出力1段IOにより、レ
ジスタ要求管理処理を呼出しくステップ43)、退避域
上のデータに対する回復命令を出力しくステップ44)
、データの所在場所をレジスタ上に設定しくステップ4
5)、テンポラリデータをレジスタ上にロートし、当該
レジスタ参照とする。
次に、コンパイラ14はアドレス解決処理部IIを起動
する。アドレス解決処理部llでは、本来ラベル、デー
タ等のアドレス解決を行い最終的な機械語に変更するが
、この処理の中で擬似ストアの中間言語を見つけるとく
ステップ51)、当擬似ストアを実ストアに変更する指
令があるか否かを実ストア変更指令を参照することによ
り判別しくステップ52)、指令があれば実ストア出力
手段12により擬似ストアを実際のストア命令に変更(
ステップ53)、指令が無ければ擬似ストアの中間言語
を削除する(ステップ54)。コンパイラ14は最後に
、目的プログラム出力処理部13により目的プログラム
ファイル1Gに目的プログラムを出力し、終Yする。
〔発明の効果〕
以上説明したように本発明は、共通式のテンポラリデー
タに対して無限側のレジスタを割当てることにより、共
通式のテンポラリデータが同時期に無限個発生しても計
算機のレジスタの物理的個数に関係なくレジスタを割当
てることができるため、共通式の有効範囲を損わずに、
共通式の最適化が行え、こむにより共通式の最適化効率
を飛蹟的に向上させることができる効果がある。
【図面の簡単な説明】
第1図は本発明の共通式の最適化処理に対するレジスタ
割当て方式の一実施例を示す図、第2図は第1図中のテ
ンポラリデータ定義処理5の構成および擬似ストア出力
手段6の位置関係を示す図、第3図は第1図中のレジス
タ要求管理処理7の構成および実ストア変更手段8の位
置関係を示す図、第4図は第1図中のテンポラリデータ
参照処理9および回復命令処理手段IOの位置関係を示
す図、第5図は第1図中の実ストア出力手段I2の構成
を示す図、第6図は擬似ストアの中間言語の形式を示す
図である。 l・・・字句/構文/意味解析処理部、2・・・最適化
処理部、 3・・・共通式抽出処理、 4・・・コード生成処理部、 5・・・テンポラリデータ定義処理、 6・・・擬似ストア出力手段、 7・・・レジスタ要求管理処理、 8・・・実ストア変更手段f段、 9・・・テンポラリデータ参照処理、 10・・・回復命令出力手段、 11・・・アドレス解決処理部、 12・・・実ストア出力手段、 13・・・目的プログラム出力処理部、14・・・コン
パイラ。 15・・・原始プログラムファイル、 16・・・目的ブロクラムファイル 第1図

Claims (1)

  1. 【特許請求の範囲】 共通式の最適化処理に対するレジスタ割当て方式におい
    て、 共通式のテンポラリデータを定義する時点でレジスタ不
    足の事態に備えてテンポラリデータを仮の退避命令によ
    り退避する擬似ストア出力手段と、 レジスタ要求管理処理におけるレジスタ不足発生時に、
    擬似ストア出力手段で出力したテンポラリデータの擬似
    ストアを後で実ストアに変更することを記憶する実スト
    ア変更指令手段と、 退避命令により退避されたテンポラリデータを参照時に
    レジスタに回復する回復命令出力手段と、 実ストア変更指令手段により実際の退避命令が必要であ
    ると記憶されたテンポラリデータに対して擬似ストアを
    実ストアに変更出力する実ストア出力手段を備えたこと
    を特徴とする共通式の最適処理に対するレジスタ割当て
    方式。
JP24541485A 1985-10-31 1985-10-31 共通式の最適化処理に対するレジスタ割当て方式 Expired - Fee Related JPH0766333B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24541485A JPH0766333B2 (ja) 1985-10-31 1985-10-31 共通式の最適化処理に対するレジスタ割当て方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24541485A JPH0766333B2 (ja) 1985-10-31 1985-10-31 共通式の最適化処理に対するレジスタ割当て方式

Publications (2)

Publication Number Publication Date
JPS62105240A true JPS62105240A (ja) 1987-05-15
JPH0766333B2 JPH0766333B2 (ja) 1995-07-19

Family

ID=17133297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24541485A Expired - Fee Related JPH0766333B2 (ja) 1985-10-31 1985-10-31 共通式の最適化処理に対するレジスタ割当て方式

Country Status (1)

Country Link
JP (1) JPH0766333B2 (ja)

Also Published As

Publication number Publication date
JPH0766333B2 (ja) 1995-07-19

Similar Documents

Publication Publication Date Title
JP2941947B2 (ja) 非同期に順序付けされた動作を行うコンピュータ方法及び装置
US6363522B1 (en) Method and apparatus for handling exceptions as normal control flow
US5642514A (en) Method and system for constructing compact executable files by eliminating redundant debugging strings
JPS62105240A (ja) 共通式の最適化処理に対するレジスタ割当て方式
JPS5922140A (ja) 対話型コンパイル方式
JPS6234240A (ja) デ−タ割付け方式
JP2754866B2 (ja) データ駆動形計算機用オブジエクトコード生成装置
JP2785138B2 (ja) 大規模知識データベースシステムにおける遺伝方式
JP2786689B2 (ja) コンパイラ処理方法
JPH0357023A (ja) コンパイラの型情報伝播処理方法
JPH04107738A (ja) リテラルの最適化割り付け方式
JPS63178345A (ja) デ−タベ−スアクセス処理方式
JPH0792757B2 (ja) 最適データ割付け方式
JPH02222032A (ja) 加減算命令の最適化方式
JPS62221038A (ja) プログラムの実行方式
JPS62216042A (ja) デ−タ領域のメモリ割付方式
US20070255911A1 (en) Method of optimising writing by a master block into a fifo type interfacing device between this master block and a slave block, and the corresponding computer program product
JPH02161531A (ja) 共通ブロック統合化方式
JPH03201122A (ja) 補助記憶装置のデータ更新方式
Watlington MagicEight: System Description
JPH02282830A (ja) コンパイル処理方式
JPH0250730A (ja) 共通機械語による言語変換方式
JPH02211541A (ja) プログラム生成方式
JPH04153737A (ja) コンパイル更新情報出力方式
JPS62282333A (ja) 命令再配置プログラム作成方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees