JPS58161045A - コンパイラにおけるレジスタ管理方式 - Google Patents
コンパイラにおけるレジスタ管理方式Info
- Publication number
- JPS58161045A JPS58161045A JP4387382A JP4387382A JPS58161045A JP S58161045 A JPS58161045 A JP S58161045A JP 4387382 A JP4387382 A JP 4387382A JP 4387382 A JP4387382 A JP 4387382A JP S58161045 A JPS58161045 A JP S58161045A
- Authority
- JP
- Japan
- Prior art keywords
- register
- code
- address
- information
- instruction
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(1発明の技術分野
本発明はコンパイラにおけるレジスタ管理方式KIIL
、’Iにマシンの持つレジスタに関連する処理(例えば
レジスタ割付け、最適化)を行う際にレジスタの使用情
報を簡単に得ることができるようKし九りラスタ管焉方
式に関する。
、’Iにマシンの持つレジスタに関連する処理(例えば
レジスタ割付け、最適化)を行う際にレジスタの使用情
報を簡単に得ることができるようKし九りラスタ管焉方
式に関する。
(2)技術の背景
高級言語で記述基れ九ソース・プログラムからオブジェ
クト・コードを生成するコ/ノ(イラでは。
クト・コードを生成するコ/ノ(イラでは。
マシンのもつレジスタに関連する処理(例えばレジスタ
割付砂、最適化)を行う際にレジスタ管理を行っている
。
割付砂、最適化)を行う際にレジスタ管理を行っている
。
レジスタ0IIIjIIを正確に行うためには、コンノ
くイラが生成した各コードでのレジスタの使用情報が必
要になる。そこでコンパイラでは、各コードでのレジス
タ使用情報を何らかの方法で得て、この得られ九情報を
何らかの形で蓄える。コンノくイラ社この情報を参照し
て、レジスタ割付けや最適化などのレジスタに関連する
処理を行う。
くイラが生成した各コードでのレジスタの使用情報が必
要になる。そこでコンパイラでは、各コードでのレジス
タ使用情報を何らかの方法で得て、この得られ九情報を
何らかの形で蓄える。コンノくイラ社この情報を参照し
て、レジスタ割付けや最適化などのレジスタに関連する
処理を行う。
例えばマシンが次の■〜■の特徴を持っている場合につ
いてこれを説明する。
いてこれを説明する。
■A、Hの2つのレジスタをもつ。
■メモリから人レジスタへの転送命令と、メモリからB
レジスタへの転送命令をもつ。
レジスタへの転送命令をもつ。
■i!に、 #記■の2つの命令を同時KiIj行でき
る命令(以下複合命令という)を4つ。
る命令(以下複合命令という)を4つ。
このような特徴をもつマシンのコードを生成するコンパ
イラ−における最適化として、コンパイラが生成したコ
ードからIil記■の2つの転送命令を見つけて、これ
らを前記■の複合命令に変換する複合命令化があげられ
る。このような複合命令化を行うことがマシンの夾行効
率、メモリ使用効率を向上させることになり、tたこの
ようなことと効果的に行うことがコンパイラの性能評価
のポイントともなる。
イラ−における最適化として、コンパイラが生成したコ
ードからIil記■の2つの転送命令を見つけて、これ
らを前記■の複合命令に変換する複合命令化があげられ
る。このような複合命令化を行うことがマシンの夾行効
率、メモリ使用効率を向上させることになり、tたこの
ようなことと効果的に行うことがコンパイラの性能評価
のポイントともなる。
このコンパイラが行う複合命令化の内容は次の5点であ
る。
る。
■′メモリからAレジスタへの転送命令(MOWNA
メモリ)と、メモリからBレジスタへの転送命令(MO
VE Rメモリ)のコードのペアを見つける。
メモリ)と、メモリからBレジスタへの転送命令(MO
VE Rメモリ)のコードのペアを見つける。
■′このペアが複合命令として1命令に変換できるか否
かを調べる。
かを調べる。
d複合命令化できるペアがあれば、2つのコードを1つ
のコードに変化する。
のコードに変化する。
すなわち、第1図(イ)K示す如く、コンパイラが生成
して命令メ毫りMBMに保持されたコードの中からまず
飾記σ0処焉を行って、第1図(イ)におけるコード1
とコード2のペアを見りける。
して命令メ毫りMBMに保持されたコードの中からまず
飾記σ0処焉を行って、第1図(イ)におけるコード1
とコード2のペアを見りける。
次に仁のコード1とコード2の間にあるコードでムレジ
スタとBレジスタの使用状況を調うヘて。
スタとBレジスタの使用状況を調うヘて。
コード1とコード2との間にあるコードの中で。
Aレジスタ、Bレジスタともに使用している場合を除き
(すなわち前記aの処理)、第1図(ロ)に示す如く、
1命令でメモリからそれぞれ人レジスタとBレジスタへ
転送命令の機能を有する複合命令化を行う(1111記
■′の処jl)。
(すなわち前記aの処理)、第1図(ロ)に示す如く、
1命令でメモリからそれぞれ人レジスタとBレジスタへ
転送命令の機能を有する複合命令化を行う(1111記
■′の処jl)。
このようにコード1とコード2の間でAレジスタを使っ
ていないならば前記の如く複合命令化を実行するが、第
2図(イ)K示す如く、コード1とコード2の間でAレ
ジスタ、Bレジスタともに使用している場合(例えばA
レジスタとBレジスタを加算するADD命令があるとき
)、コード1とコード2を複合命令化して、第2図(ロ
)に示す如く。
ていないならば前記の如く複合命令化を実行するが、第
2図(イ)K示す如く、コード1とコード2の間でAレ
ジスタ、Bレジスタともに使用している場合(例えばA
レジスタとBレジスタを加算するADD命令があるとき
)、コード1とコード2を複合命令化して、第2図(ロ
)に示す如く。
1つのコードに変換すると、この結果得られるコードの
実行結果は元のコードとは違うものになり。
実行結果は元のコードとは違うものになり。
ぐ・誤りである。すなわち、第2図(ロ)Kおける A
DD命令で用いるAレジスタには、コード1のときに人
レジスタに記入されているメモリからの転記内容が入っ
ていないので、第2図(イ)に示す元のコードの7実行
結果とは別のものとなる。
DD命令で用いるAレジスタには、コード1のときに人
レジスタに記入されているメモリからの転記内容が入っ
ていないので、第2図(イ)に示す元のコードの7実行
結果とは別のものとなる。
従ってコンパイラが生成するコードにおいて。
どのコードでA、B2つのレジスタの記入内容を使用し
ているのか(以下useという)、あるいは人、B2つ
のレジスタにデータを記入しているのか(以下d@fと
いう)を示すレジスタ情報をコンパイラがもち、複合命
令化しなければ正しい結果を得ることはできない。
ているのか(以下useという)、あるいは人、B2つ
のレジスタにデータを記入しているのか(以下d@fと
いう)を示すレジスタ情報をコンパイラがもち、複合命
令化しなければ正しい結果を得ることはできない。
(3) 従来技術と間層点
前記の如く、コンパイラが生成したコードの複合命令化
という最適化を行うためには、コンパイラは生成した各
コードの正確なレジスタ情報をもつ必要がある。
という最適化を行うためには、コンパイラは生成した各
コードの正確なレジスタ情報をもつ必要がある。
一般にこの複合命令化を行う前に、コードの移動を伴う
レジスタ関連の処理(例えば、レジスタ割付けの最適化
)を行っており、勿論このようなレジスタ関連のlI&
堰においても、複合命令化と同機にレジスタの使用情報
が必要である。
レジスタ関連の処理(例えば、レジスタ割付けの最適化
)を行っており、勿論このようなレジスタ関連のlI&
堰においても、複合命令化と同機にレジスタの使用情報
が必要である。
このコードの移動を伴うレジスタ関連の処理の後に、複
合命令化を正しく行う丸めには、レジスタ情味の変化に
注意してレジスタ1理を行う必要がある。
合命令化を正しく行う丸めには、レジスタ情味の変化に
注意してレジスタ1理を行う必要がある。
従来のレジスタ管理方式で社、コンパイラが生成し九各
コードのオペレージ曹ンとオペランドをチェックして、
このコードで使用するレジスタの2つの使用情報vse
とdef、すなわち・レジスタを使っているのか(us
e )・レジスタにのせているのか(def)を求めて
レジスタ管雇用の情報テーブルを作成してい友。
コードのオペレージ曹ンとオペランドをチェックして、
このコードで使用するレジスタの2つの使用情報vse
とdef、すなわち・レジスタを使っているのか(us
e )・レジスタにのせているのか(def)を求めて
レジスタ管雇用の情報テーブルを作成してい友。
例えば、第5図(イ)に示す如く、コンパイラが生成し
九コードが命令メモリMRM中に記入されているとき(
なお第5図(イ)で左側の数字はコードの拳香を示す)
、これより第5図(ロ)に示す励きレジスタ管理用の情
報テーブルTを作成する。ここでaυ、(7)は、第5
図((IKおける左側の数字を示し。
九コードが命令メモリMRM中に記入されているとき(
なお第5図(イ)で左側の数字はコードの拳香を示す)
、これより第5図(ロ)に示す励きレジスタ管理用の情
報テーブルTを作成する。ここでaυ、(7)は、第5
図((IKおける左側の数字を示し。
Aレジスタは順番fiυのコードによりメモリからデー
タが記入され、Bレジスタ社順番四のフードによ抄メモ
リからデ、−夕が記入されることを示している。
タが記入され、Bレジスタ社順番四のフードによ抄メモ
リからデ、−夕が記入されることを示している。
このとき、レジスター付けの最適化のために。
例えば第3図(イ)に順番αυで示したコードが、第4
図(イ)K示すように順番a9に移動され九とき、これ
に応じて、第4図(ロ)K示すように、これに応じてレ
ジスタ管理用の情報テーブルTの内容を変更しておかな
ければ、紋情報テーブルTを参照して行う複合命令化を
正しく実行することはできない。
図(イ)K示すように順番a9に移動され九とき、これ
に応じて、第4図(ロ)K示すように、これに応じてレ
ジスタ管理用の情報テーブルTの内容を変更しておかな
ければ、紋情報テーブルTを参照して行う複合命令化を
正しく実行することはできない。
すなわち、従来のレジスタ管理方式を用いて複合命令化
を正しく行うためには、レジスタ管理用の情報テーブル
を修正する地理が心機不可欠であり、そのための手数が
多く必要とした。もしも修正地理を行わないとすれば複
合命令化を行う前に。
を正しく行うためには、レジスタ管理用の情報テーブル
を修正する地理が心機不可欠であり、そのための手数が
多く必要とした。もしも修正地理を行わないとすれば複
合命令化を行う前に。
再びコンパイラが生成したコードのオペレージ四ンとオ
ペ2ンドをチェックしてレジスタ管理用の情報テーブル
を新らしく作る処理が必要であり。
ペ2ンドをチェックしてレジスタ管理用の情報テーブル
を新らしく作る処理が必要であり。
さらに多くの手数を必要とする。
4)発明の目的
本発明の易的紘、レジスタ’1131を行うために。
コードの移動の度にその書替を必要とするこのような情
報テーブルを使用することのないコン7(イツにおける
レジスタ管理方式を提供するものである。
報テーブルを使用することのないコン7(イツにおける
レジスタ管理方式を提供するものである。
(5) 発明の構成
この目的を達成する九め本発明のコン7(イラにおける
レジスタ管理方式では、高級言語で記述されたソース−
プログラムからオブジェクト・コードを作成するコンパ
イラにおいて、オブジェクト・コードが使用するレジス
タのレジスタ使用情報を付加するコード生成手段と、前
記レジスタ使用情報が付加場れたコードを記入するコー
ド用メモリ手段と、#記コード用メモリ手段の調査範囲
を指示する指示手段と、前記レジスタ使用情報を抽出す
るレジスタ使用情報抽出手段を有し、管理すべき範囲内
のコードに付加されたレジスタ使用情嚢をチェックする
ことによ抄レジスタ管理を行うようにしたことを特徴と
する。
レジスタ管理方式では、高級言語で記述されたソース−
プログラムからオブジェクト・コードを作成するコンパ
イラにおいて、オブジェクト・コードが使用するレジス
タのレジスタ使用情報を付加するコード生成手段と、前
記レジスタ使用情報が付加場れたコードを記入するコー
ド用メモリ手段と、#記コード用メモリ手段の調査範囲
を指示する指示手段と、前記レジスタ使用情報を抽出す
るレジスタ使用情報抽出手段を有し、管理すべき範囲内
のコードに付加されたレジスタ使用情嚢をチェックする
ことによ抄レジスタ管理を行うようにしたことを特徴と
する。
(61発明の実施例
本発明の一実施例を詳述するに先立ち、第5図〜第8図
にもとづきその概略を説明する。
にもとづきその概略を説明する。
本発明では、ソース・プログ2ムからコン7(イラがオ
ブジェク)番コードを生成するとき、第5図に示す如く
、この生成したコードにマシンの4つレジスタの使用情
報ビットbを付加する。例え#i人レジスタとBレジス
タのuseとdef f示すエリアをコードに付加する
場合に社、コート°にb1〜b4の4ビツトのエリアを
とり、第6図に示す如く、″Aレクラタ、Bレジスタの
uae 、 dafの状態に応じてrOJ、rIJを定
める。このレジスタ情報用の各ビットをコ/ノ(イラが
コードを生成すると色。
ブジェク)番コードを生成するとき、第5図に示す如く
、この生成したコードにマシンの4つレジスタの使用情
報ビットbを付加する。例え#i人レジスタとBレジス
タのuseとdef f示すエリアをコードに付加する
場合に社、コート°にb1〜b4の4ビツトのエリアを
とり、第6図に示す如く、″Aレクラタ、Bレジスタの
uae 、 dafの状態に応じてrOJ、rIJを定
める。このレジスタ情報用の各ビットをコ/ノ(イラが
コードを生成すると色。
−」時にセットする。そしてレジスタ関連処理における
レジスタ管履けすべてコードに付加したレジスタ使用情
報ビットbをチェックす冷ことにより行い、レジスタ管
理用の情報テーブルは不要とする。
レジスタ管履けすべてコードに付加したレジスタ使用情
報ビットbをチェックす冷ことにより行い、レジスタ管
理用の情報テーブルは不要とする。
例えば第7図(イ)に示す如く、命令メモjJ MBM
K前記σに示したコン7(イラが生成したコート°を記
入するとき、そのコードにおけるレジスタの使用情報を
記入する。すなわち、第7図(イ)における**Uのコ
ードではムレジスタにメモリからデータを転記する丸め
Kd@fを示すビットb1に「1」力≦記入され、11
番(至)のコードではBレジスタにメモリからデータを
転記するので、同蟻にピッ) baに「1」が記入され
ている。
K前記σに示したコン7(イラが生成したコート°を記
入するとき、そのコードにおけるレジスタの使用情報を
記入する。すなわち、第7図(イ)における**Uのコ
ードではムレジスタにメモリからデータを転記する丸め
Kd@fを示すビットb1に「1」力≦記入され、11
番(至)のコードではBレジスタにメモリからデータを
転記するので、同蟻にピッ) baに「1」が記入され
ている。
したがって順番Iのコードに対してレジスタ関連の処理
で、第7図(ロ)K示す位置にコート°の移動がある場
合、単に該コードを移動するだけでよい。
で、第7図(ロ)K示す位置にコート°の移動がある場
合、単に該コードを移動するだけでよい。
複合命令化を行う場合、コン7(イラが生成したコード
の一部が第8図(イ)に示す状態にあるとき。
の一部が第8図(イ)に示す状態にあるとき。
**aSと(2)のコードがこの複合命令の候補である
。
。
これらのゴ・=ドを°1合化するために、このコート。
のベアが複合命令化できるか否かをチェックすることが
必要であるが、このとき職番a唾からlI唾までの中で
AレジスタとBレジスタの使用状況をチェックする。こ
の楊合、各コードにレジスタ使用情報ビットbI−b4
をチェックすれば簡単にそれらの使用情報を得ることが
できる。これらのチェックの結果、珈番霞からaltで
のAレジスタのus@情報ビットがすべて「0」であれ
ば順番α$と(至)のコードを複合命令化できる。これ
により、18図(ロ)に示す如<、J[I(+49と(
2)のコードを1つの複合命令に変換することができる
。
必要であるが、このとき職番a唾からlI唾までの中で
AレジスタとBレジスタの使用状況をチェックする。こ
の楊合、各コードにレジスタ使用情報ビットbI−b4
をチェックすれば簡単にそれらの使用情報を得ることが
できる。これらのチェックの結果、珈番霞からaltで
のAレジスタのus@情報ビットがすべて「0」であれ
ば順番α$と(至)のコードを複合命令化できる。これ
により、18図(ロ)に示す如<、J[I(+49と(
2)のコードを1つの複合命令に変換することができる
。
次に本発明の一実施例構成をis9図にもとづき説明す
る。
る。
図中、1はコード生成部、2は複合命令化処理部、5は
レジスタ管理部、4線命令メモリ、5紘入出力レジスタ
、6は出力レジスタ、7は命令アドレス・レジスタ、8
は第1アドレス・レジスタ。
レジスタ管理部、4線命令メモリ、5紘入出力レジスタ
、6は出力レジスタ、7は命令アドレス・レジスタ、8
は第1アドレス・レジスタ。
9は第2アドレス・レジスタ、10は情報選択レジスタ
、11は使用情報レジスタ、12は第5アドレス・レジ
スタ、15は第4アドレス・レジスタ、14は第5アド
レス・レジスタ、15は第1情−レジスタ、16は第2
情報レジスタ、17は情報累積レジスタ、18は第3情
報レジスタ。
、11は使用情報レジスタ、12は第5アドレス・レジ
スタ、15は第4アドレス・レジスタ、14は第5アド
レス・レジスタ、15は第1情−レジスタ、16は第2
情報レジスタ、17は情報累積レジスタ、18は第3情
報レジスタ。
1?紘子アドレス定部、20はアドレス・カウントアツ
プ部、21はアンド操作部、22はオア操作部、25は
コント四−2である。
プ部、21はアンド操作部、22はオア操作部、25は
コント四−2である。
コード生成部1はソース・プログラムからオブジェクト
・コードを生成すゐものであって、生成したコードは命
令メモリ4に保持される。
・コードを生成すゐものであって、生成したコードは命
令メモリ4に保持される。
壷金命令化処理部2紘;−ド生成部1により生成され九
コードのうち複合化できる屯のがあればこれを検出して
複合命令を作成するものである。
コードのうち複合化できる屯のがあればこれを検出して
複合命令を作成するものである。
レジスタ管理部3は命令メモリ4中に格納されているコ
ードにおけるレジスタの使用状態を管理するもので6に
複金命令化lI&履部2からの指示により、vk述する
ように指示された範囲のチェックを行うものである。
ードにおけるレジスタの使用状態を管理するもので6に
複金命令化lI&履部2からの指示により、vk述する
ように指示された範囲のチェックを行うものである。
命令メ毫り4はコード生成部1によりコンパイラが生成
したフードが格納されるものであり、第7図、第8図の
命令メモIJMEMK対応する。この命令メモリ4の内
部には、第5図に示す如きフォーマットのコード、すな
わち命令コードとレジスタ使用情報ビットb1〜b4が
記入されており、このレジスタ使用情報ピッ) bt〜
b4の定義は、第6図に示す通りである。
したフードが格納されるものであり、第7図、第8図の
命令メモIJMEMK対応する。この命令メモリ4の内
部には、第5図に示す如きフォーマットのコード、すな
わち命令コードとレジスタ使用情報ビットb1〜b4が
記入されており、このレジスタ使用情報ピッ) bt〜
b4の定義は、第6図に示す通りである。
入出力レジスタ5は、コード生成部1tたは複合命令化
処理部2からコードを受けて命令メモリ4に入力したり
、あるい紘命令メモリ4がら出力されたコードがセット
され石ものである。
処理部2からコードを受けて命令メモリ4に入力したり
、あるい紘命令メモリ4がら出力されたコードがセット
され石ものである。
出力レジスタ6は命令メモリ4から出力し九コードを保
持するものであり、そのうち特にレジスタ使用情報ピッ
) bs〜b4が外部に出方されるように構成されてい
る。
持するものであり、そのうち特にレジスタ使用情報ピッ
) bs〜b4が外部に出方されるように構成されてい
る。
命令アドレス・レジスタ7社命令メモリ4をアクセスす
るためのアドレスがセットされるアドレス・レジスタで
ある。
るためのアドレスがセットされるアドレス・レジスタで
ある。
第1アドレスφレジスタ8は命令メモリ4のどのコード
からレジスタ管理を行うかを示すアドレスがセットされ
るものであ#)、このアドレスを複合命令化処理部2か
ら受けてレジスタ管理部3に伝達するものである。
からレジスタ管理を行うかを示すアドレスがセットされ
るものであ#)、このアドレスを複合命令化処理部2か
ら受けてレジスタ管理部3に伝達するものである。
第2アドレス・レジスタ9は命令メモリ4のどのコード
壕でレジスタ管理を行うかを示すアドレスがセット宴れ
るものであ抄、仁のアドレスを複合命令化処理部2かも
受けてレジスタ管理部5に伝達するものである。
壕でレジスタ管理を行うかを示すアドレスがセット宴れ
るものであ抄、仁のアドレスを複合命令化処理部2かも
受けてレジスタ管理部5に伝達するものである。
情報選択レジスタ10は、コードに付加したレジスタ使
用情報ビットb1〜b4のうちどのビットを取出すのか
を指示するものであに、この指示は複合命令化処111
12から出力され、レジスタ管理部15に伝達するもの
である。もしAレジスタのdef状態と、Bレジスタの
def状態を取出す場合にはレジスタ使用情報ビットb
、とb4のみを取出せばよく、このとき社情報選択レジ
スタ100ビットb。
用情報ビットb1〜b4のうちどのビットを取出すのか
を指示するものであに、この指示は複合命令化処111
12から出力され、レジスタ管理部15に伝達するもの
である。もしAレジスタのdef状態と、Bレジスタの
def状態を取出す場合にはレジスタ使用情報ビットb
、とb4のみを取出せばよく、このとき社情報選択レジ
スタ100ビットb。
とb4位置にそれぞれ「1」で他のビットblとす、が
それぞれ「0」の選択指示情報が記入されることになる
。
それぞれ「0」の選択指示情報が記入されることになる
。
使用情報レジスタ11祉レジスタ管理部5から送出され
るレジスタ使用情報がセットされるものである。
るレジスタ使用情報がセットされるものである。
g15アドレス会レジスタ12は、命令メモリ4からレ
ジスタ使用情報を耽出すコードのアドレスがセットされ
るレジスタである。
ジスタ使用情報を耽出すコードのアドレスがセットされ
るレジスタである。
第4アドレス会レジスタ13は、後述するアーレス判定
部19から出方されるアドレスがセットされるものであ
る。
部19から出方されるアドレスがセットされるものであ
る。
第5アドレス・レジスタ14は、後述するアドレスQカ
ウントアツプ部2oより出力された。第4アドレスルジ
スタ13にセットされたアドレスの次のアドレスがセッ
トされるものである。
ウントアツプ部2oより出力された。第4アドレスルジ
スタ13にセットされたアドレスの次のアドレスがセッ
トされるものである。
第1情報レジスタ15は命令メモリ4よに胱出し九コー
ドに付加されたレジスタ使用情報ビットb、〜b4がセ
ットされるものである。
ドに付加されたレジスタ使用情報ビットb、〜b4がセ
ットされるものである。
第2情報レジスタ16祉後述するアンド操作部21より
出力されるレジスタ使用情報がセットされるものである
。
出力されるレジスタ使用情報がセットされるものである
。
情*11累横レジスタ17社命令メモリ4から読出した
レジスタ使用情報が累積されるものである。
レジスタ使用情報が累積されるものである。
第5情報レジスタ18は、41述するオア操作部22か
ら出力されるレジスタ使用情報がセッートされる4ので
ある。
ら出力されるレジスタ使用情報がセッートされる4ので
ある。
アドレス判定1119Fi、第2アドレス・レジスタ?
にセットされたアドレスと、第5アドレス拳レジスタ1
2にセットされ九アドレスとが一致するか否かを判定す
る4のであって、一致したときこれを後述するコントロ
ーラ25に報告するものである。
にセットされたアドレスと、第5アドレス拳レジスタ1
2にセットされ九アドレスとが一致するか否かを判定す
る4のであって、一致したときこれを後述するコントロ
ーラ25に報告するものである。
アドレス拳カウントアツプ部20a、Ii4アトVX・
レジスタ15にセットされたアドレスを1つ増やしてこ
れを第5アドレス・レジスタ14に出力するものである
。
レジスタ15にセットされたアドレスを1つ増やしてこ
れを第5アドレス・レジスタ14に出力するものである
。
アンド操作部21は、情報選択レジスタ1o上にセット
された選択指示情報(取出したいビットが「1」で他が
「0」)と第1情報レジスタ15との各ビットbI〜b
4毎のビット対応のアンドをとるものである。
された選択指示情報(取出したいビットが「1」で他が
「0」)と第1情報レジスタ15との各ビットbI〜b
4毎のビット対応のアンドをとるものである。
オア操作部22祉第2情報レジスタ16と情報累積レジ
スタ17にそれぞれセットされたレジスタ使用情報の各
ピッ) b、−’−b、毎のビット対応のオアをとるも
のである。
スタ17にそれぞれセットされたレジスタ使用情報の各
ピッ) b、−’−b、毎のビット対応のオアをとるも
のである。
コントローラ25はレジスタ管理s5を1括制御するも
のであって、鉤えば複合命令化処理部2からスタート信
号を受けたとtlKこのレジスタ管理部5を起動させた
抄、レジスタ管理が終了した信号を複合命令化処理部2
に送出した抄、アドレス判定部19やアドレス拳カウン
トアツプ部20゜アンド操作部21.オア操作部22に
起動をか轄たり、アートレス判定Wh19からの終了信
号によりレジスタ使用情報をしジ久グ管理部3から出力
させる勢のような各種制御を行うものである。
のであって、鉤えば複合命令化処理部2からスタート信
号を受けたとtlKこのレジスタ管理部5を起動させた
抄、レジスタ管理が終了した信号を複合命令化処理部2
に送出した抄、アドレス判定部19やアドレス拳カウン
トアツプ部20゜アンド操作部21.オア操作部22に
起動をか轄たり、アートレス判定Wh19からの終了信
号によりレジスタ使用情報をしジ久グ管理部3から出力
させる勢のような各種制御を行うものである。
次に第9図の動作について説明する。
■ いま、コード生成部1より第5図に示す状態のコー
ドが作成され、これが第8図(イ)K示すような状態で
命令メモリ4に格納されており、*誉a喝〜■がそのi
t命令メモリ4のアドレスに相当する本のとする。そし
て複合命令化処理部2がコード生成部1のコード作成状
態を監視し、命令メモリ4のアドレス「15」とアドレ
ス「20」に格納されているコードを複合命令化すべき
であると判断したとを、アドレス「16」〜アドレスr
lWJ間に存在するコードがAレジスタとBレジスタを
delの状態で使用していないことをチェックしなけれ
ばならない。したがって複合命令化処理部2鉱、第1ア
ドレス・レジスタ8にアドレス「16」ヲセットし、第
2アドレスeレジスタ9にアドレス「19」をセットし
、情報選択レジスタ10にk)l+b4に相当のビット
に「1」を記入した「o i OIJを記入し、各=−
ドのす、、b4に対する情報選択を指示する。それから
複合命令化処理部2はレジスタ管理部SK起動信号を送
出する。
ドが作成され、これが第8図(イ)K示すような状態で
命令メモリ4に格納されており、*誉a喝〜■がそのi
t命令メモリ4のアドレスに相当する本のとする。そし
て複合命令化処理部2がコード生成部1のコード作成状
態を監視し、命令メモリ4のアドレス「15」とアドレ
ス「20」に格納されているコードを複合命令化すべき
であると判断したとを、アドレス「16」〜アドレスr
lWJ間に存在するコードがAレジスタとBレジスタを
delの状態で使用していないことをチェックしなけれ
ばならない。したがって複合命令化処理部2鉱、第1ア
ドレス・レジスタ8にアドレス「16」ヲセットし、第
2アドレスeレジスタ9にアドレス「19」をセットし
、情報選択レジスタ10にk)l+b4に相当のビット
に「1」を記入した「o i OIJを記入し、各=−
ドのす、、b4に対する情報選択を指示する。それから
複合命令化処理部2はレジスタ管理部SK起動信号を送
出する。
■ コント3−ツ23は仁の複合命令化処理部2からの
起動信号を受けたとき、アドレス判定部1?、アドレス
・カウントアツプ部20.アンド操作部21.オア操作
部22を起動する。
起動信号を受けたとき、アドレス判定部1?、アドレス
・カウントアツプ部20.アンド操作部21.オア操作
部22を起動する。
■ 第1アドレス・レジスタ8にセットされたアトレー
ス「16」は第5アドレス・レジスタ12にセットされ
る。アドレス判定部19拡この第3アドレス・レジスタ
12にセットされたアドレス「16」が第2アドレス・
レジスタ9にセットされたアドレス「19」に達しない
ので、第3アドレス・レジスタ12にセットされたアド
レスを第4アドレス・レジスタ13に出力され、これK
より命令アドレス・レジスタ7にアドレス「16」がセ
ットされ命令メモリ4の尚該アドレスが読出されてその
コード及びレジスタ使用情報が出力レジスタ6に出力さ
れる。そしてこのレジスタ使用情報が第1情報レジスタ
15にセットされ、前記情報選択レジスタ10で指示さ
れているb1〜b4[0101Jに対するビット対応の
論理積がアンド操作部21で求められる。したがって命
令メモリ4のアドレス「16」に記入されているコード
がAレジスタ及びBレジスタを使用していないときには
第1情報レジスタ15に[0OOOJがセットされるの
で。
ス「16」は第5アドレス・レジスタ12にセットされ
る。アドレス判定部19拡この第3アドレス・レジスタ
12にセットされたアドレス「16」が第2アドレス・
レジスタ9にセットされたアドレス「19」に達しない
ので、第3アドレス・レジスタ12にセットされたアド
レスを第4アドレス・レジスタ13に出力され、これK
より命令アドレス・レジスタ7にアドレス「16」がセ
ットされ命令メモリ4の尚該アドレスが読出されてその
コード及びレジスタ使用情報が出力レジスタ6に出力さ
れる。そしてこのレジスタ使用情報が第1情報レジスタ
15にセットされ、前記情報選択レジスタ10で指示さ
れているb1〜b4[0101Jに対するビット対応の
論理積がアンド操作部21で求められる。したがって命
令メモリ4のアドレス「16」に記入されているコード
がAレジスタ及びBレジスタを使用していないときには
第1情報レジスタ15に[0OOOJがセットされるの
で。
アンド操作部21からは[0OOOJが出力され。
これが第2情報レジスタ14にセットされる。
■ この第2情報レジスタ16にセットされ九データは
、オア操作部22を経由して第3情報レジスタ18に伝
達され、それから情報累積レジスタ17にセットされる
。
、オア操作部22を経由して第3情報レジスタ18に伝
達され、それから情報累積レジスタ17にセットされる
。
■ 一方、’J4アドレス・レジスタ13に七ッツプ部
20によp+1されて「17」となり、 $5アドレス
・レジスタ14を経由して第3アドレス・レジスタ12
にセットされる。そしてこのアドレスj17Jが、これ
壜九第2アドレス・レジスタ9にセットされているアド
レスrl?JK達したかどうかの判別が行なわれ、それ
からこのアドレス「17」が第4アドレス・レジスタ1
3にセットされ、同様にして命令メモリ4のアクセスが
行われる。そしてこのアドレス「17」におけるコード
のレジスタ使用情報が第1情報レジスタ15にセットさ
れ、前記と同様なアンド操作がアンド操作部21によ知
行われる。
20によp+1されて「17」となり、 $5アドレス
・レジスタ14を経由して第3アドレス・レジスタ12
にセットされる。そしてこのアドレスj17Jが、これ
壜九第2アドレス・レジスタ9にセットされているアド
レスrl?JK達したかどうかの判別が行なわれ、それ
からこのアドレス「17」が第4アドレス・レジスタ1
3にセットされ、同様にして命令メモリ4のアクセスが
行われる。そしてこのアドレス「17」におけるコード
のレジスタ使用情報が第1情報レジスタ15にセットさ
れ、前記と同様なアンド操作がアンド操作部21によ知
行われる。
0 このようなことが順次行なわれて第3アドレス・レ
ジスタ12にアドレス[19Jがセットされ九ときアド
レス判定部19はコントローラ25に対して、このアド
レスが第2アドレス・レジスタ9にセットされた値と一
致することを報告し。
ジスタ12にアドレス[19Jがセットされ九ときアド
レス判定部19はコントローラ25に対して、このアド
レスが第2アドレス・レジスタ9にセットされた値と一
致することを報告し。
第4アドレス・レジスタ15にこのアドレス「19Jを
出力する。;ントローラ25はこれによりアドレス・カ
ウントアツプ部200動作を停止させる。
出力する。;ントローラ25はこれによりアドレス・カ
ウントアツプ部200動作を停止させる。
とζろで命令メモリ4では第4アドレス・レジスタ15
を経由して命令アドレス・レジスタ7に−にットされた
アドレス「1 ?J K対するアクセスが行なわれ、そ
のコードに付加されたレジスタ使用情報が第1情報レジ
スタ15にセットされ、m記の場合と同様にアンド操作
されてこれが第2情報レジスタ16にセットされ、これ
と情報累積レジスタ17にセットされているアドレス「
16」〜「18」までのレジスタ使用情報とビット対応
してオア操作されてgJ5情報レジスタ18を経由して
、今度はアドレス「16」〜「19」までのレジスタ使
用情報が情報累積レジスタ17にセットされる。それか
らコントローラ23よ抄出力指令がオア操作部22に伝
達されるので、オア操作部22は仁の情報累積レジスタ
17に累積されたレジスタ使用情報を第3情報レジスタ
18を経由して使用情報レジスタ11に出力する。
を経由して命令アドレス・レジスタ7に−にットされた
アドレス「1 ?J K対するアクセスが行なわれ、そ
のコードに付加されたレジスタ使用情報が第1情報レジ
スタ15にセットされ、m記の場合と同様にアンド操作
されてこれが第2情報レジスタ16にセットされ、これ
と情報累積レジスタ17にセットされているアドレス「
16」〜「18」までのレジスタ使用情報とビット対応
してオア操作されてgJ5情報レジスタ18を経由して
、今度はアドレス「16」〜「19」までのレジスタ使
用情報が情報累積レジスタ17にセットされる。それか
らコントローラ23よ抄出力指令がオア操作部22に伝
達されるので、オア操作部22は仁の情報累積レジスタ
17に累積されたレジスタ使用情報を第3情報レジスタ
18を経由して使用情報レジスタ11に出力する。
■ もし命令メ毫り4のアドレス「16」〜「19」に
記入されたコードがAレジスタもBレジスタも使用しな
ければ(bs g haに関する態様で)使用情報レジ
スタ11Ka 「0000Jが記入されることになる。
記入されたコードがAレジスタもBレジスタも使用しな
ければ(bs g haに関する態様で)使用情報レジ
スタ11Ka 「0000Jが記入されることになる。
し九がりて複素命令化処理部2は使用情報レジスタII
K記入されたデータより前記アドレス区間内におけるコ
ードがムレジスタもBレジスタも使用されていないこと
をg*する。そしてその結果第8図(ロ)に示す如くア
ドレス「15」とj20Je:I−ドを複合化した複合
命令を作成し。
K記入されたデータより前記アドレス区間内におけるコ
ードがムレジスタもBレジスタも使用されていないこと
をg*する。そしてその結果第8図(ロ)に示す如くア
ドレス「15」とj20Je:I−ドを複合化した複合
命令を作成し。
これを入出力レジスタ5にセットする。そしてコント四
−223からむのセットに必要なアドレスを命令アドレ
ス争レジスタに送出させる。仁のようKして、第8図(
ロ)に示す如く、複合命令が命令メ毫す4に記入される
ととになる。
−223からむのセットに必要なアドレスを命令アドレ
ス争レジスタに送出させる。仁のようKして、第8図(
ロ)に示す如く、複合命令が命令メ毫す4に記入される
ととになる。
■ ところが、命令メモリ4のアドレス「16」と「1
9J 0II4に、例えば「ADD A、BJのよう
K。
9J 0II4に、例えば「ADD A、BJのよう
K。
人レジスタのデータとBレジスタのデータを加算し、こ
れをムレジスタにセットするようなコードが存在する場
合にはそのレジスタ使用情報は「1110」と記入され
ており、その結果、使用情報レジスタ11には「010
0J(bs+bsは情報1択しジスタ10でrQJのた
め)がレジスタ管1ullsから出力される。接合命令
化処理部2はこれによりAレジスタを書替えるコードが
アドレス「16」〜「19」に存在することを判別し、
このような場合には僚合命令化処理を行わない。
れをムレジスタにセットするようなコードが存在する場
合にはそのレジスタ使用情報は「1110」と記入され
ており、その結果、使用情報レジスタ11には「010
0J(bs+bsは情報1択しジスタ10でrQJのた
め)がレジスタ管1ullsから出力される。接合命令
化処理部2はこれによりAレジスタを書替えるコードが
アドレス「16」〜「19」に存在することを判別し、
このような場合には僚合命令化処理を行わない。
なお前記の説明ではムレジスタとBレジスタの2つのレ
ジスタが使用される例について説明したが、勿論管理さ
れるレジスタは2つのみに限定されるものではなく適宜
増加することができる。そしてこれに応じて使用情味ビ
ットも増加することになる。
ジスタが使用される例について説明したが、勿論管理さ
れるレジスタは2つのみに限定されるものではなく適宜
増加することができる。そしてこれに応じて使用情味ビ
ットも増加することになる。
(7)発明の効果
本発明によれに、コードにレジスタ使用情報ビットを付
加し、コードを移動処理するときこのレジスタ使用情報
ビットを付加した11移動するので、レジスタ関連処理
におけるレジスタ管層線すべてコードに付加したレジス
タ使用情報ビットをチェックすることによ如可能になる
。したがって従来のようにコードの移動に伴ってその書
替が必要となるレジスタ情報テーブルを作成する必要が
ない。
加し、コードを移動処理するときこのレジスタ使用情報
ビットを付加した11移動するので、レジスタ関連処理
におけるレジスタ管層線すべてコードに付加したレジス
タ使用情報ビットをチェックすることによ如可能になる
。したがって従来のようにコードの移動に伴ってその書
替が必要となるレジスタ情報テーブルを作成する必要が
ない。
このように本発明によればレジスタ情報を害鳥にチェツ
タできるのみならず、コードの移動にともなうレジスタ
情報テーブルを修正する手間もいらなく*b、コードを
移動してもレジスタ管理を害鳥に、正確に奥行できゐ。
タできるのみならず、コードの移動にともなうレジスタ
情報テーブルを修正する手間もいらなく*b、コードを
移動してもレジスタ管理を害鳥に、正確に奥行できゐ。
t 5uite簡単な説明
第1閣紘豪会命令化処履の説明図、第2図は検金命令化
処理ができないケースの説明図、第3図。
処理ができないケースの説明図、第3図。
第4Illは従来のレジスタ管理及びその間層点の説明
図、第1L第6図は本発明における生成コード及びその
説明図、第7図及び第8図は本発明の動作説明図、第9
閣は本発明の一実施例構成図で参る。
図、第1L第6図は本発明における生成コード及びその
説明図、第7図及び第8図は本発明の動作説明図、第9
閣は本発明の一実施例構成図で参る。
図中、1はコード生虞部、2は資金命令化処理部、3は
レジスタ管理部、4紘命令メモリ、5は入出力レジスタ
、6は出力レジスタ、7は命令アドレス・レジスタ、a
は第1アドレス拳レジスタ。
レジスタ管理部、4紘命令メモリ、5は入出力レジスタ
、6は出力レジスタ、7は命令アドレス・レジスタ、a
は第1アドレス拳レジスタ。
9社第2アドレス・レジスタ、10は情報選択レジスタ
、11は使用情報レジスタ、12は第5アドレス・レジ
スタ、13はjl14アドレス・レジス/、14til
15アドレス・レジスタ、15は第1情報レジスタ、1
6社第2情報レジx夕styは情報累積レジスタ、18
は第5情報レジスタ。
、11は使用情報レジスタ、12は第5アドレス・レジ
スタ、13はjl14アドレス・レジス/、14til
15アドレス・レジスタ、15は第1情報レジスタ、1
6社第2情報レジx夕styは情報累積レジスタ、18
は第5情報レジスタ。
19はアドレス判定部、20紘アドレスe力ウントアツ
プ部、21はアンド操作部、22はオア操作部、25は
コントローラである。
プ部、21はアンド操作部、22はオア操作部、25は
コントローラである。
特許出願人 富士通株式会社
代理人弁理士 山 谷 晧 榮
21
オ1I121 tイ)
(ロ)f4PjJ (イ)
(q)才
5図 コード゛ bhbb 宅ヒθm、イ)
(ロ)f4PjJ (イ)
(q)才
5図 コード゛ bhbb 宅ヒθm、イ)
Claims (1)
- (1) 高級言語で記述され九ソースプログラムから
オブジェクトコードを作成するコンパイラにおいて、オ
ブジェクトコードが使用するレジスタのレジスタ使用情
報を付加するコード生成手段と。 前記レジスタ使用情報が付加されたコードを記入するコ
ード用メモリ手段と、前記コード用メモリ手段の調査範
囲を指示する指示手段と、前記レジスタ使用情報を抽出
するレジスタ使用情報抽出手段を有し、管理すべき範囲
内のコードに付加されたレジスタ使用情報をチェックす
ることによりレジスタ管理を行うようKしたことを特徴
とするコンパイラにおけるレジスタ管理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4387382A JPS58161045A (ja) | 1982-03-19 | 1982-03-19 | コンパイラにおけるレジスタ管理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4387382A JPS58161045A (ja) | 1982-03-19 | 1982-03-19 | コンパイラにおけるレジスタ管理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS58161045A true JPS58161045A (ja) | 1983-09-24 |
| JPH0228174B2 JPH0228174B2 (ja) | 1990-06-21 |
Family
ID=12675811
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4387382A Granted JPS58161045A (ja) | 1982-03-19 | 1982-03-19 | コンパイラにおけるレジスタ管理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS58161045A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6081641A (ja) * | 1983-10-11 | 1985-05-09 | Matsushita Electric Ind Co Ltd | レジスタトレース方法 |
| JPS61110240A (ja) * | 1984-10-31 | 1986-05-28 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 最適化コンパイラ |
| JPS61183744A (ja) * | 1985-02-04 | 1986-08-16 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | コード生成工程での命令形式選択方法 |
-
1982
- 1982-03-19 JP JP4387382A patent/JPS58161045A/ja active Granted
Non-Patent Citations (1)
| Title |
|---|
| OBJECT CODE OPTINIZATION=1969 * |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6081641A (ja) * | 1983-10-11 | 1985-05-09 | Matsushita Electric Ind Co Ltd | レジスタトレース方法 |
| JPS61110240A (ja) * | 1984-10-31 | 1986-05-28 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 最適化コンパイラ |
| JPS61183744A (ja) * | 1985-02-04 | 1986-08-16 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | コード生成工程での命令形式選択方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0228174B2 (ja) | 1990-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS595936B2 (ja) | 多重モ−ド記憶装置 | |
| JPS63231550A (ja) | 多重仮想空間制御方式 | |
| US3351909A (en) | Information storage and transfer system for digital computers | |
| JPS6376034A (ja) | 多重アドレス空間制御方式 | |
| US4280177A (en) | Implicit address structure and method for accessing an associative memory device | |
| CN111142891B (zh) | 一种数据烧录的验证方法、装置、电子设备及介质 | |
| KR102275181B1 (ko) | 멀티코어 프로세서 시스템에서 메모리 할당 방법 및 장치, 이를 위한 기록매체 | |
| CN112181637B (zh) | 一种内存资源分配方法及装置 | |
| JPH0228174B2 (ja) | ||
| JPH113270A (ja) | フラッシュメモリ装置およびフラッシュメモリへのデータ書き込み方法 | |
| JPS60118952A (ja) | 仮想アドレス制御方式 | |
| JP2573711B2 (ja) | マイクロサブルーチン制御方式 | |
| JP2523152B2 (ja) | アドレス変換方式 | |
| JP2509981B2 (ja) | 仮想記憶制御装置 | |
| JPH0129639Y2 (ja) | ||
| JPS58166585A (ja) | バッファ記憶制御方式 | |
| JPS63266560A (ja) | バツフア記憶制御方式 | |
| JPS5828675B2 (ja) | インタ−リ−ブメモリのアドレス方式 | |
| JPH0235545A (ja) | セツトアソシアテイブ方式キヤツシユメモリの診断方法 | |
| JPS58146948A (ja) | フアンクシヨンマクロ | |
| JPS62127954A (ja) | 変換アドレス格納方式 | |
| JPS62133544A (ja) | メモリ装置 | |
| JPS5875248A (ja) | マイクロコンピユ−タ | |
| JPS5953958A (ja) | メモリアクセス回路 | |
| JPS62126447A (ja) | アドレス変換方法 |