JPS63254533A - レジスタ同値情報管理方式 - Google Patents

レジスタ同値情報管理方式

Info

Publication number
JPS63254533A
JPS63254533A JP62088345A JP8834587A JPS63254533A JP S63254533 A JPS63254533 A JP S63254533A JP 62088345 A JP62088345 A JP 62088345A JP 8834587 A JP8834587 A JP 8834587A JP S63254533 A JPS63254533 A JP S63254533A
Authority
JP
Japan
Prior art keywords
register
unit
equivalence
information
code
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
JP62088345A
Other languages
English (en)
Inventor
Yoshimi Somazawa
杣澤 義美
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 JP62088345A priority Critical patent/JPS63254533A/ja
Publication of JPS63254533A publication Critical patent/JPS63254533A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンパイラのオブジェクトコード生成方式に関
し、特にレジスタ同値情報を管理して効率の良いオブジ
ェクトコードを生成するためのレジスタ同値情報管理方
式に関する。
〔従来の技術〕
コンパイラのオブジェクトコード生成方式においては、
効率の良いオブジェクトコードを生成する目的でレジス
タ内のデータと主起’=@gW内のデータとの同値関係
を管理して、主記憶装置内のデータを参照するときにそ
のデータを格納しているレジスタが存在すれば、主記憶
装置内のデータを参照するオブジェクトコードに代えて
そのレジス夕を参照するオブジェクトコードを生成する
レジスタ同値情報管理方式が採用されている。
例えば、第2図の左に示すような原始プログラムが与え
られた場合、レジスタ同値情報の管理を行わなければ第
2図の右に示すようなオブジェクトコードが生成される
が、レジスタ同値情報を管理しオブジェクトコードの第
3ステツプの段階で主記憶装置内のデータXとレジスタ
GRiの内容とが一致することを認識しておけば、オブ
ジェクトコードの第4および第6ステツプは生成しなく
てもすむ。
従来、この種のレジスタ同値情報管理方式では、例えば
第3図の左に示すような原始プログラムが与えられた場
合、第3図の右に示すように、原始プログラムの第1ス
テツプではレジスタGRiとデータXとがレジスタ同値
情報によって管理され、第4ステツプではレジスタ同値
情報の参照によってデータXのロード用のオブジェクト
コードは生成されずにレジスタGRiをデータYにスト
アするオブジェクトコードが生成され同時にレジスタG
R4とデータYとがレジスタ同値情報によって管理され
、第5ステツプではレジスタGRkとデータPとがレジ
スタ同値情報によって管理され、第8ステツプではデー
タYの代わりにデータZとして第4ステツプのときと同
様に管理され、第9ステツプでは第5ステツプを実行し
た場合は第9ステツプが実行されないのでデータPに関
するレジスタ同値情報は参照されずにデータPをレジス
タGR1にロードしてデータQにストアするオブジェク
トコードが生成される。
このように、目的プログラムの制御が分岐または合流す
る点(以下、実行分岐点と称する)から次の実行分岐点
までの範囲(以下、ユニ7)と称する)を越えてレジス
タ同値情報を管理する従来のレジスタ同値情報管理方式
には、 (1)命令中間コード列をスタックして置きそれを随時
にサーチしてレジスタ同値情報を抽出するスタック方式
と、 (2)最適化手段が中間語コード列に対して解析する目
的プログラム内の実行分岐点に関する情報と同一なもの
を同値情報処理手段内で命令中間コード列に対して解析
し収集してレジスタ同値情報を抽出する再解析方式と、 があった。
〔発明が解決しようとする問題点〕
上述した従来のレジスタ同値情報管理方式では、+11
のスタック方式の場合には、 ■ 命令中間コード列をスタックする範囲が有限となる
ので、最適なオブジェクトコードを生成できる目的プロ
グラムの範囲が限定される、■ レジスタ同値情報の抽
出および更新が必要となるたびにスタックした命令中間
コード列のサーチが必要となるので、コンパイラの処理
速度を遅くする要因になる、 という欠点がある。
また、(2)の再解析方式の場合には、■ 最適化手段
と同様な目的プログラム内の実行分岐点に関する情報を
抽出する処理内容が同値情報処理手段に必要となる、 ■ かつこの目的プログラムの実行分岐点に関する情報
を抽出する処理はコード生成手段が生成した命令中間コ
ード列に対する解析となるので、収集する情報が多様か
つ大量となりコンパイラの処理速度を遅くする要因にな
る(命令中間コード列は中間語コード列に比べて目的機
種のオブジェクトコードにより近(情報が細分化されて
いる)、という欠点がある。
本発明の目的は、上述の点に鑑み、最適化手段が中間語
コード列に対して解析する目的プログラム内の実行分岐
点に関する情報に基づいてレジスタ同値情報の管理範囲
を規定する命令中間コード(以下、ユニットコードと称
する)を生成して命令中間コード列に含めてレジスタ同
値情報処理手段に与えることにより、最適なオブジェク
トコードを生成できる目的プログラムの範囲を限定する
ことなしにレジスタ同値情報をより簡単な処理構成で目
的プログラムの実行分岐点を越えて管理して最適なオブ
ジェクトコードをより高速に生成できるようにしたレジ
スタ同値情報管理方式を提供することにある。
〔問題点を解決するための手段〕
本発明のレジスタ同値情報管理方式は、レジスタ内のデ
ータと主記憶装置内のデータとの同値関係を示すレジス
タ同値情報を管理して効率の良いオブジェクトコードを
生成するコンパイラのオブジェクトコード生成方式にお
いて、最適化手段によって起動され起動時に通知される
目的プログラム内の実行分岐点に関する情報に基づいて
レジスタ同値情報の管理範囲を規定する命令中間コード
であるユニットコードを生成するユニットコード生成手
段と、レジスタ割当て手段から起動される同値情報処理
手段によって起動され起動時に通知される前記ユニット
コードに基づいてレジスタ同値情報の管理範囲を表示す
るユニット情報テーブルを作成するユニットコード解析
手段と、前記同値情報処理手段から起動され前記ユニ7
)情報テーブルに基づいて前記同値情報処理手段が作成
したレジスタ同値情報テーブルのうちの現在処理中の命
令中間コードが含まれるユニットにおいて有効なレジス
タ同値情報を決定して前記同値情報処理手段に通知する
同値情報参照手段とを有する。
〔作用〕
本発明のレジスタ同値情報管理方式では、ユニットコー
ド生成手段が最適化手段によって起動され起動時に通知
される目的プログラム内の実行分岐点に関する情報に基
づいてレジスタ同値情報の管理範囲を規定する命令中間
コードであるユニットコードを生成し、ユニットコード
解析手段がレジスタ割当て手段から起動される同値情報
処理手段によって起動され起動時に通知されるユニット
コードに基づし、)でレジスタ同値情報の管理範囲を表
示するユニット情報テーブルを作成し、同値情報参照手
段が同値情報処理手段から起動されユニット情報テーブ
ルに基づいて同値情報処理手段が作成したレジスタ同値
情報テーブルのうちの現在処理中の命令中間コードが含
まれるユニットにおいて有効なレジスタ同値情報を決定
して同値情報処理手段に通知する。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明のレジスタ同値情報管理方式の一実施
例の構成を示すブロック図である。本実施例のレジスタ
同値情報管理方式は、原始プログラム(図示せず)が読
み込まれ字句解析され構文解析されて生成された中間語
コード列1と、最適なオブジェクトコードを生成する目
的で中間語コード列1の段階での最適化と呼ばれる種々
の処理を行う最適化手段2と、目的プログラムの実行分
岐点と各実行分岐点での実行分岐後の流れの関係とを示
す目的プログラム内の実行分岐点に関する情報を管理す
るユニットテーブル3と、ユニットテーブル3のエント
リである目的プログラム内の実行分岐点に関する情報に
基づいてレジスタ同値情報の管理範囲を規定する命令中
間コードであるユニットコードを生成するユニットコー
ド生成手段4と、最適化手段2から出力されるユニット
コードを含む第1命令中間コード列5と、第1命令中間
コード列5を入力して第2命令中間コード列7を生成す
るコード生成手段6と、コード生成手段6から出力され
る目的プログラムのオブジェクトコードのイメージであ
る第2命令中間コード列7と、レジスタ同値情報に基づ
いて最適なオブジェクトコードが生成されるようにレジ
スタ割当てを行うレジスタ割当て手段8と、レジスタ同
値情報の検索、追加および削除の処理を行う同値情報処
理手段9と、レジスタ同値情報を格納するレジスタ同値
情報テーブル10と、第2命令中間コード列7に含まれ
るユニットコードを解析するユニットコード解析手段1
1と、ユニットコードより復元された目的プログラムの
実行分岐点に関する情報とレジスタ同値情報テーブル1
0内の各エントリのうちの目的プログラム内のユニット
ごとに有効となるエントリに関する情報とを含むユニッ
ト情報テーブル12と、ユニット情報テーブル12に基
づいてレジスタ同値情報テーブル10のエントリのうち
の現在処理中のユニットで有効となるエントリを決定す
る同値情報参照手段13と、レジスタ割当て手段8から
出力される第3命令中間コード列14と、第3命令中間
コード列14を入力してオブジェクトコードユニット1
6を編集するオブジェクトコード編集手段15と、オブ
ジェクトコード編集手段15から出力されるオブジェク
トコードユニット16とから、その主要部が構成されて
いる。
次に、このように構成された本実施例のレジスタ同値情
報管理方式の動作について第4図〜第7図に示す具体例
を参照しながら説明する。
コンパイラにおいて、原始プログラムが読み込まれ字句
解析され構文解析されて中間語コード列1が生成される
と、最適化手段2は目的プログラムの実行分岐点を表す
中間語コードをL’l 36し、認識した中間語コード
に基づいて目的プログラムの実行順序の流れを解析して
、目的プログラムの実行分岐点と各実行分岐点からの実
行分岐後の実行順序の流れの関係を示す実行分岐点に関
する情報を管理するユニットテーブル3を作成する0例
えば、第4図の左に示すような原始プログラムから生成
された中間語コード列1が与えられた場合、最適化手段
2は、第4図の右に示すようなユニットU1がユニット
UよとユニットU、とに分岐し、ユニ、ト[J2がユニ
ットUIから分岐されユニットし、に分岐し、ユニット
U、がユニソ1−IJ、から分岐されユニットU4に分
岐し、ユニットU4がユニ、トU2とユニットU、とか
ら分岐されることを示す実行分岐点に関する情報を管理
するユニットテーブル3を作成する。
また、最適化手段2は、ユニットテーブル3を作成また
は更新するたびごとにユニットコード生成手段4を起動
する。
起動されたユニットコード生成手段4は、起動時に最適
化手段2から通知されろユニットテーブル3のエントリ
である目的プログラム内の実行分岐点に関する悄叩に基
づいてレジスタ同値情報の管理範囲を規定する命令中間
コードであるユニットコードを生成して最適化手段2に
返却する。
ユニットコード生成手段4からユニットコードを返却さ
れた最適化手段2は、ユニットコードを含めて中間語コ
ード列1を最適化処理して第1命令中間コード列5を生
成する。例えば、第5図の左に示すような原始プログラ
ムから生成された中間語コード列1が与えられた場合に
は、第5図の右に示すように、実行分岐点によって目的
プログラムの実行が分岐される関係を表すユニットコー
ドUC,〜UC1が目的プログラム内の実行分岐点の位
置に生成される。
第1命令中間コード列5が出力されると、コード生成手
段6は、第1命令中間コード列5から目的プログラムの
オブジェクトコードのイメージである第2命令中間コー
ド列7を生成する。
このコード生成手段6での処理と連動してまたは処理の
終了後に、レジスタ割当て手段8は第3命令中間コード
列14の生成を開始する。
レジスタ割当て手段8は、まず同値情報処理手段9を起
動する。
起動された同値情報処理手段9は、第2命令中間コード
列7に基づいてレジスタ同値情報を管理するレジスタ同
値情報テーブル10を作成する0例えば、第6図の左に
示すような原始プログラムが与えられた場合、第6図の
右に示すように、レジスタGRiとデータXとが同値で
あることを示す情報、レジスタGRjとデータ■とが同
値であることを示す情轄、レジスタGRiとデータYと
が同値であることを示す情報、レジスタGRkとデータ
Pとが同値であることを示す情報、レジスタGRiとデ
ータZとが同値であることを示す情報。
レジスタGR1とデータPとおよびレジスタGR1とデ
ータQとが同値であることを示す情報等のレジスタ同値
情報を管理するレジスタ同値情報テーブル10を作成す
る。
また、レジスタ割当て手段8は、第2命令中間コード列
7中に含まれるユニットコードを認識するたびごとに同
値情報処理手段9を介してユニットコード解析手段11
を起動する。
起動されたユニットコード解析手段11は、起動時にレ
ジスタ割当て手段8から同値情報処理手段9を介して通
知されるユニットコードとレジスタ同値情報テーブル1
0とに基づいてユニットごとに有効なレジスタ同値情報
テーブル10のエントリに関する情報を管理するユニッ
ト情報テーブル12を作成する。ユニット情報テーブル
12は、例えば第7図に示すように、リスト構造を有す
るテーブルで形成されていて、ユニットコードから復元
される目的プログラム内の実行分岐点に関する情報(第
4図に示したユニットテーブル3の内容と一致する情報
)と、ポインタと、レジスタ同値情報テーブル10の有
効エントリを示すポインタチェインとから構成されてい
る。
また、同値情報処理手段9は、レジスタの有効利用を図
りより良いオブジェクトコードを生成するために、レジ
スタ同値情報の検索、追加または削除の処理が必要とな
るたびごとに同値情報参照手段13を起動する。
起動された同値情4参照手段13は、ユニー/ トコー
ド解析手段11によって作成されたユニット情報テーブ
ル12に基づいて同値情報処理手段9が作成したレジス
タ同値情報テーブル10のエントリのうちの現在処理中
の命令中間コードが含まれるユニットに対応するエント
リを決定してその結果を同値清報処理手段9に通知する
レジスタ同値情報テーブル10のエントリの通知を受け
た同値情報処理手段9は、このレジスタ同値情報テーブ
ルIOのエントリに基づいて現在処理中の命令中間コー
ドが含まれるユニットで有効なレジスタ同値情報を決定
してレジスタ割当て手段8に通知する。
現在処理中の命令中間コードが含まれるユニットで有効
なレジスタ同値情報を通知されたレジスタ割当て手段8
は、通知されたレジスタ同値情報に基づいて最適なオブ
ジェクトコードを生成するレジスタ割当てを行って第3
命令中間コード列14を生成する。
最後に、オブジェクトコード編集手段15は、第3命令
中間コード列14を目的機種のオブジェクトコードユニ
ット16に編集して出力する。
〔発明の効果〕
以上説明したように本発明は、ユニットコード生成手段
、ユニットコード解析手段および同値情報参照手段を設
置すたことにより、最適なオブジェクトコードを生成で
きる目的プログラムの範囲を限定することなしにレジス
タ同値情報をより簡単な処理構成で目的プログラムの実
行分岐点を越えて管理して目的プログラムの全体にわた
って有効なレジスタの使用を反映した効率の良いオブジ
ェクトコードを高速に生成できる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、 第2図は原始プログラムからのオブジェクトコードの生
成例を示す図、 第3図はレジスタ同値情報の管理イメージを例示する図
、 第4図は第1図中のユニットテーブルの情報イメージの
一例を示す図、 第5図は本実施例のレジスタ同値情報管理方式における
ユニットコードの生成位置と情報イメージとの一例を示
す図、 第6図は第1図中のレジスタ同値情報テーブルの一例を
示す図、 第7図は第1図中のユニット情報テーブルの一例とレジ
スタ同値情報テーブルとの関連を示す図である。 図において、 l・・・中間語コード列、 2・・・最適化手段、 3・・・ユニットテーブル、 4・・・ユニットコード生成手段、 5・・・第1命令中間コード列、 6・・・コード生成手段、 7・・・第2命令中間コード列、 8・・・レジスタ割当て手段、 9・・・同値情報処理手段、 10・・・レジスタ同値情報テーブル、11・・・ユニ
ットコード解析手段、 12・・・ユニット情報テーブル、 13・・・同値情報参照手段、 14・・・第3命令中間コード列、 15・・・オブジェクトコード[1手段、16・・・オ
ブジェクトコードユニットである。

Claims (1)

  1. 【特許請求の範囲】 レジスタ内のデータと主記憶装置内のデータとの同値関
    係を示すレジスタ同値情報を管理して効率の良いオブジ
    ェクトコードを生成するコンパイラのオブジェクトコー
    ド生成方式において、最適化手段によって起動され起動
    時に通知される目的プログラム内の実行分岐点に関する
    情報に基づいてレジスタ同値情報の管理範囲を規定する
    命令中間コードであるユニットコードを生成するユニッ
    トコード生成手段と、 レジスタ割当て手段から起動される同値情報処理手段に
    よって起動され起動時に通知される前記ユニットコード
    に基づいてレジスタ同値情報の管理範囲を表示するユニ
    ット情報テーブルを作成するユニットコード解析手段と
    、 前記同値情報処理手段から起動され前記ユニット情報テ
    ーブルに基づいて前記同値情報処理手段が作成したレジ
    スタ同値情報テーブルのうちの現在処理中の命令中間コ
    ードが含まれるユニットにおいて有効なレジスタ同値情
    報を決定して前記同値情報処理手段に通知する同値情報
    参照手段と、を有することを特徴とするレジスタ同値情
    報管理方式。
JP62088345A 1987-04-10 1987-04-10 レジスタ同値情報管理方式 Pending JPS63254533A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62088345A JPS63254533A (ja) 1987-04-10 1987-04-10 レジスタ同値情報管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62088345A JPS63254533A (ja) 1987-04-10 1987-04-10 レジスタ同値情報管理方式

Publications (1)

Publication Number Publication Date
JPS63254533A true JPS63254533A (ja) 1988-10-21

Family

ID=13940255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62088345A Pending JPS63254533A (ja) 1987-04-10 1987-04-10 レジスタ同値情報管理方式

Country Status (1)

Country Link
JP (1) JPS63254533A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04309133A (ja) * 1991-04-08 1992-10-30 Kobe Nippon Denki Software Kk コンパイル最適化方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04309133A (ja) * 1991-04-08 1992-10-30 Kobe Nippon Denki Software Kk コンパイル最適化方式

Similar Documents

Publication Publication Date Title
US7353503B2 (en) Efficient dead code elimination
EP3553696B1 (en) Generating a structured document based on a machine readable document and artificial intelligence-generated annotations
CN105094941B (zh) 一种实现多语言的方法及装置
JP3205406B2 (ja) 参照対象変数決定処理方法および翻訳処理システム
CN118312153A (zh) 编译器后端代码生成方法、装置、存储介质
JPS63254533A (ja) レジスタ同値情報管理方式
KR20080038306A (ko) 널가능과 후 바인딩
JP2925042B2 (ja) 情報リンク生成方法
JPH0756745A (ja) 言語処理プログラムのコンパイラ処理方式
JPH0887417A (ja) コンパイラ装置
JPH05197534A (ja) プログラムデータベースシステム
Zosimov et al. Development of domain-specific language for data processing on the internet
JP2000231478A (ja) ソフトウェアの自動生成装置および方法、記録媒体
JP3279706B2 (ja) オンライン・コンパイル方式
JP2003050700A (ja) プログラム変換方法
Wang et al. Integrating Retrieval-Augmented Generation for Enhanced Code Reuse: A Comprehensive Framework for Efficient Software Development
JPS6074056A (ja) 履歴情報のフアイル管理方式
JPH07168719A (ja) 冗長式除去装置
JPH06175862A (ja) 電子計算機装置
CN121003795A (zh) 游戏项目的启动控制方法、装置和电子设备
CN120448514A (zh) 一种用于科技文献增强检索方法及系统
JP2000132405A (ja) インライン展開処理装置及び方法
CN117632248A (zh) 一种自适应的函数调用图生成方法及终端
JP2943643B2 (ja) 意味関係検索装置
JPH02151931A (ja) 中間言語テキストの再利用方式