JPH0228174B2 - - Google Patents

Info

Publication number
JPH0228174B2
JPH0228174B2 JP57043873A JP4387382A JPH0228174B2 JP H0228174 B2 JPH0228174 B2 JP H0228174B2 JP 57043873 A JP57043873 A JP 57043873A JP 4387382 A JP4387382 A JP 4387382A JP H0228174 B2 JPH0228174 B2 JP H0228174B2
Authority
JP
Japan
Prior art keywords
register
code
instruction
address
memory
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.)
Expired - Lifetime
Application number
JP57043873A
Other languages
English (en)
Other versions
JPS58161045A (ja
Inventor
Morio Ikesaka
Shigeharu Hasu
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP4387382A priority Critical patent/JPS58161045A/ja
Publication of JPS58161045A publication Critical patent/JPS58161045A/ja
Publication of JPH0228174B2 publication Critical patent/JPH0228174B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Description

【発明の詳細な説明】 (1) 発明の技術分野 本発明はコンパイラにおけるレジスタ管理方式
に関し、特にマシンの持つレジスタに関連する処
理(例えばレジスタ割付け、最適化)を行う際に
レジスタの使用情報を簡単に得ることができるよ
うにしたレジスタ管理方式に関する。
(2) 技術の背景 高級言語で記述されたソース・プログラムから
オブジエクト・コードを生成するコンパイラで
は、マシンのもつレジスタに関連する処理(例え
ばレジスタ割付け、最適化)を行う際にレジスタ
管理を行つている。
レジスタの管理を正確に行うためには、コンパ
イラが生成した各コードでのレジスタの使用情報
が必要になる。そこでコンパイラでは、各コード
でのレジスタ使用情報を何らかの方法で得て、こ
の得られた情報を何らかの形で蓄える。コンパイ
ラはこの情報を参照して、レジスタ割付けや最適
化などのレジスタに関連する処理を行う。
例えばマシンが次の〜の特徴を持つている
場合についてこれを説明する。
A,Bの2つのレジスタをもつ。
メモリからAレジスタへの転送命令と、メモ
リからBレジスタへの転送命令をもつ。
更に、前記の2つの命令を同時に実行でき
る命令(以下複合命令という)をもつ。
このような特徴をもつマシンのコードを生成す
るコンパイラにおける最適化として、コンパイラ
が生成したコードから前記の2つの転送命令を
見つけて、これらを前記の複合命令に変換する
複合命令化があげられる。このような複合命令化
を行うことがマシンの実行効率、メモリ使用効率
を向上させることになり、またこのようなことを
効果的に行うことがコンパイラの性能評価のポイ
ントともなる。
このコンパイラが行う複合命令化の内容は次の
3点である。
′ メモリからAレジスタへの転送命令
(MOVE A メモリ)と、メモリからBレジ
スタへの転送命令(MOVE B メモリ)のコ
ードのペアを見つける。
′ このペアが複合命令として1命令に変換で
きるか否かを調べる。
′ 複合命令化できるペアがあれば、2つのコ
ードを1つのコードに変化する。
すなわち、第1図イに示す如く、コンパイラが
生成して命令メモリMEMに保持されたコードの
中からまず前記′の処理を行つて、第1図イに
おけるコード1とコード2のペアを見つける。
次にこのコード1とコード2の間にあるコード
でAレジスタとBレジスタの使用状況を調らべ
て、コード1とコード2との間にあるコードの中
で、Aレジスタ、Bレジスタともに使用している
場合を除き(すなわち前記′の処理)、第1図ロ
に示す如く、1命令でメモリからそれぞれAレジ
スタとBレジスタへ転送命令の機能を有する複合
命令化を行う(前記′の処理)。
このようにコード1とコード2の間でAレジス
タを使つていないならば前記の如く複合命令化を
実行するが、第2図イに示す如く、コード1とコ
ード2の間でAレジスタ、Bレジスタともに使用
している場合(例えばAレジスタとBレジスタを
加算するADD命令があるとき)、コード1とコー
ド2を複合命令化して、第2図ロに示す如く、1
つのコードに変換すると、この結果得られるコー
ドの実行結果は元のコードとは違うものになり、
誤りである。すなわち、第2図ロにおけるADD
命令で用いるAレジスタには、コード1のときに
Aレジスタに記入されているメモリからの転記内
容が入つていないので、第2図イに元のコードの
実行結果とは別のものとなる。
従つてコンパイラが生成するコードにおいて、
どのコードでA,B2つのレジスタの記入内容を
使用しているのか(以下useという)、あるいは
A,B2つのレジスタにデータを記入しているの
か(以下defという)を示すレジスタ情報をコン
パイラがもち、複合命令化しなければ正しい結果
を得ることはできない。
(3) 従来技術と問題点 前記の如く、コンパイラが生成したコードの複
合命令化という最適化を行うためには、コンパイ
ラは生成した各コードの正確なレジスタ情報をも
つ必要がある。
一般にこの複合命令化を行う前に、コードの移
動を伴うレジスタ関連の処理(例えば、レジスタ
割付けの最適化)を行つており、勿論このような
レジスタ関連の処理においても、複合命令化と同
様にレジスタの使用情報が必要である。
このコードの移動を伴うレジスタ関連の処理の
後に、複合命令化を正しく行うためには、レジス
タ情報の変化に注意してレジスタ管理を行う必要
がある。
従来のレジスタ管理方式では、コンパイラが生
成した各コードのオペレーシヨンとオペランドを
チエツクして、このコードで使用するレジスタの
2つの使用情報useとdef、すなわち ●レジスタを使つているのか(use) ●レジスタにのせているのか(def) を求めてレジスタ管理用の情報テーブルを作成し
ていた。
例えば、第3図イに示す如く、コンパイラが生
成したコードが命令メモリMEM中に記入されて
いるとき(なお第3図イで左側の数字はコードの
順番を示す)、これにより第3図ロに示す如きレ
ジスタ管理用の情報テーブルTを作成する。ここ
で(11),(20)は、第3図イにおける左側の数字を
示し、Aレジスタは順番(11)のコードによりメモリ
からデータが記入され、Bレジスタは順番(20)
のコードによりメモリからデータが記入されるこ
とを示している。
このとき、レジスタ割付けの最適化のために、
例えば第3図イに順番(11)で示したコードが、第4
図イに示すように順番(15)に移動されたとき、
これに応じて、第4図ロに示すように、これに応
じてレジスタ管理用の情報テーブルTの内容を変
更しておかなければ、該情報テーブルTを参照し
て行う複合命令化を正しく実行することはできな
い。
すなわち、従来のレジスタ管理方式を用いて複
合命令化を正しく行うためには、レジスタ管理用
の情報テーブルを修正する処理が必要不可欠であ
り、そのための手数が多く必要とした。もしも修
正処理を行わないとすれば複合命令化を行う前
に、再びコンパイラが生成したコードのオペレー
シヨンとオペランドをチエツクしてレジスタ管理
用の情報テーブルを新らしく作る処理が必要であ
り、さらに多くの手数を必要とする。
(4) 発明の目的 本発明の目的は、レジスタ管理を行うために、
コードの移動の度にその書替を必要とするこのよ
うな情報テーブルを使用することのないコンパイ
ラにおけるレジスタ管理方式を提供するものであ
る。
(5) 発明の構成 この目的を達成するための本発明のコンパイラ
におけるレジスタ管理方式では、メモリから第1
のレジスタへデータを転送する転送命令と、メモ
リから第2のレジスタへデータを転送する転送命
令と、メモリから第1のレジスタへデータを転送
する動作とメモリから第2のレジスタへデータを
転送する動作を同時に実行可能な複合命令とを有
するデータ処理装置を対象とし、高級言語で記述
されたソースプログラムからオブジエクトコード
を作成するコンパイラにおいて、メモリから第1
のレジスタへデータを転送する転送命令と、メモ
リから第2のレジスタへデータを転送する転送命
令とをまとめて複合命令を生成する複合命令化処
理手段と、オブジエクトコードが使用するレジス
タのレジスタ使用情報を付加するコード生成手段
と、前記レジスタ使用情報が付加されたコードを
記入するコード用メモリ手段と、前記複合命令化
処理手段からの前記コード用メモリ手段の調査範
囲を指示する情報にもとづき、前記ード用メモリ
手段へのアクセスアドレスを生成するコード用メ
モリアクセスアドレス生成手段と、前記複合命令
化処理手段からの選択指示にもとづき前記コード
用メモリ手段から読み出された前記レジスタ使用
情報から所要の情報を抽出するレジスタ使用情報
抽出手段を有し、前記複合命令化処理手段は管理
すべき範囲内のコードに付加されたレジスタ使用
情報のチエツク結果にもとづいて複合命令を生成
するようにしたことを特徴とする。
(6) 発明の実施例 本発明の一実施例を詳述する先立ち、第5図〜
第8図にもとづきその概略を説明する。
本発明では、ソース・プログラムからコンパイ
ラがオブジエクト・コードを生成するとき、第5
図に示す如く、この生成したコードにマシンのも
つレジスタの使用情報ビツトbを付加する。例え
ばAレジスタとBレジスタのuseとdefを示すエリ
アをコードに付加する場合には、コードにb1〜b4
の4ビツトのエリアをとり、第6図に示す如く、
Aレジスタ、Bレジスタのuse,defの状態に応じ
て「0」,「1」を定める。このレジスタ情報用の
各ビツトをコンパイラがコードを生成するとき、
同時にセツトする。そしてレジスタ関連処理にお
けるレジスタ管理はすべてコードに付加したレジ
スタ使用情報ビツトbをチエツクすることにより
行い、レジスタ管理用の情報テーブルは不要とす
る。
例えば第7図イに示す如く、命令メモリMEM
に前記′に示したコンパイラが生成したコード
を記入するとき、そのコードにおけるレジスタの
使用情報を記入する。すなわち、第7図イにおけ
る順番(11)のコードではAレジスタにメモリからデ
ータを転記するためにdefを示すビツトb2に「1」
が記入され、順番(20)のコードではBレジスタ
にメモリからデータを転記するので、同様にビツ
トb4に「1」記入されている。
したがつて順番(11)のコードに対してレジスタ関
連の処理で、第7図ロに示す位置にコードの移動
がある場合、単に該コードを移動するだけでよ
い。
複合命令化を行う場合、コンパイラが生成した
コードの一部が第8図イに示す状態にあるとき、
順番(15)と(20)コードがこの複合命令の候補
である。これらのコードを複合化するために、こ
のコードのペアが複合命令化できるか否かをチエ
ツクすることが必要であるが、このとき順番
(16)から(19)までの中でAレジスタとBレジ
スタの使用状況をチエツクする。この場合、各コ
ードにレジスタ使用情報ビツトb1〜b4をチエツク
すれば簡単にそれらの使用情報を得ることができ
る。これらのチエツクの結果、順番(16)から
(19)でのAレジスタのuse情報ビツトがすべて
「0」であれば順番(15)と(20)のコードを複
合命令化できる。これにより、第8図ロに示す如
く、順番(15)と(20)のコードを1つの複合命
令に変換することができる。
次に本発明の一実施例を第9図にもとづき説明
する。
図中、1はコード生成部、2は複合命令化処理
部、3はレジスタ管理部、4は命令メモリ、5は
入出力レジスタ、6は出力レジスタ、7は命令ア
ドレレス・レジスタ、、8は第1アドレス・レジ
スタ、9は第2アドレス・レジスタ、10は情報
選択レジスタ、(11)は使用情報レジスタ、12は第
3アドレス・レジスタ、13は第4アドレス・レ
ジスタ、14は第5アドレス・レジスタ、15は
第1情報レジスタ、16は第2情報レジスタ、1
7は情報累積レジスタ、18は第3情報レジス
タ、19はアドレス判定部、20はアドレス・カ
ウントアツプ部、21はアンド操作部、22はオ
ア操作部、23はコントローラである。
コード生成部1はソース・プログラムからオブ
ジエクト・コードを生成するものであつて、生成
したコードは命令メモリ4に保持される。
複合命令化処理部2はコード生成部1により生
成されたコードのうち複合化できるものがあれば
これを検出して複合命令を作成するものである。
レジスタ管理部3は命令メモリ4中に格納され
ているコードにおけるレジスタの使用状態を管理
するものであり複合命令化処理部2からの指示に
より、後述するように指示された範囲のチエツク
を行うものである。
命令メモリ4はコード生成部1によりコンパイ
ラが生成したコードが格能されるものであり、第
7図、第8図の命令メモリMEMに対応する。こ
の命令メモリ4の内部には、第5図に示す如きフ
オーマツトのコード、すなわち命令コードとレジ
スタ使用情報ビツトb1〜b4が記入されており、こ
のレジスタ使用情報ビツトb1〜b4の定義は、第6
図に示す通りである。
入出力レジスタ5は、コード生成部1または複
合命令化処理部2からコードを受けて命令メモリ
4に入力したり、あるいは命令メモリ4から出力
されたコードがセツトされるものである。
出力レジスタ6は命令メモリ4から出力したコ
ードを保持するものであり、そのうち特にレジス
タ使用情報ビツトb1〜b4が外部に出力されるよう
に構成されている。
命令アドレス・レジスタ7は命令メモリ4をア
クセスするためのアドレスがセツトされるアドレ
ス・レジスタである。
第1アドレス・レジスタ8は命令メモリ4のど
のコードからレジスタ管理を行うかを示すアドレ
スがセツトされるものであり、このアドレスを複
合命令化処理部2から受けてレジスタ管理部3に
伝達するものである。
第2アドレス・レジスタ9は命令メモリ4のど
のコードまでレジスタ管理を行うかを示すアドレ
スがセツトされるものであり、このアドレスを複
合命令化処理部2から受けてレジスタ管理部3に
伝達するものである。
情報選択レジスタ10は、コードに付加したレ
ジスタ使用情報ビツトb1〜b4のうちどのビツトを
取出すのかを指示するものであり、この指示は複
合命令化処理部2から出力され、レジスタ管理部
3に伝達するものである。もしAレジスタのdef
状態と、Bレジスタのdef状態を取出す場合には
レジスタ使用情報ビツトb2とb4のみを取出せばよ
く、このときは使用選択レジスタ10のビツトb2
とb4位置にそれぞれ「1」で他のビツトb1とb3
それぞれ「0」の選択指示情報が記入されること
になる。
使用情報レジスタ11はレジスタ管理部3から
送出されるレジスタ管理情報がセツトされるもの
である。
第3アドレス・レジスタ12は、命令メモリ4
からレジスタ使用情報を読出すコードのアドレス
がセツトされるレジスタである。
第4アドレス・レジスタ13は、後述するアド
レス判定部19から出力されるアドレスがセツト
されるものである。
第5アドレス・レジスタ14は、後述するアド
レス・カウントアツプ部20より出力された、第
4アドレス・レジスタ13にセツトされたアドレ
スの次のアドレスがセツトされるものである。
第1情報レジスタ15は命令メモリ4より読出
したコードに付加されたレジスタ使用情報ビツト
b1〜b4がセツトされるものである。
第2情報レジスタ16は後述するアンド操作部
21より出力されるレジスタ使用情報がセツトさ
れるものである。
情報累積レジスタ17は命令メモリ4から読出
したレジスタ使用情報が累積されるものである。
第3情報レジスタ18は、後述するオア操作部
22から出力されるレジスタ使用情報がセツトさ
れるものである。
アドレス判定部19は、第2アドレス・レジス
タ9にセツトされたアドレスと、第3アドレス・
レジスタ12にセツトされたアドレスとが一致す
るか否かを判定するものであつて、一致したとき
これを後述するコントローラ23に報告するもの
である。
アドレス・カウントアツプ部20は、第4アド
レス・レジスタ13にセツトされたアドレスを1
つ増やしてこれを第5アドレス・レジスタ14に
出力するものである。
アンド操作部21は、情報選択レジスタ10上
にセツトされた選択指示情報(取出したいビツト
が「1」で他が「0」)と第1情報レジスタ15
との各ビツトb1〜b4毎のビツト対応のアンドをと
るものである。
オア操作部22は第2情報レジスタ16と情報
累積レジスタ17にそれぞれセツトされたレジス
タ使用情報の各ビツトb1〜b4毎のビツト対応のオ
アをとるものである。
コントローラ23はレジスタ管理部3を総括制
御するものであつて、例えば複合命令化処理部2
からスタート信号を受けたときにこのレジスタ管
理部3を起動させたり、レジスタ管理が終了した
信号を複合命令化処理部2に送出したり、アドレ
ス判定部19やアドレス・カウントアツプ部2
0、アンド操作部21、オア操作部22に起動を
かけたり、アドレス判定部19からの終了信号に
よりレジスタ使用情報をレジスタ管理部3から出
力させる等のような各種制御を行うものである。
次に第9図の動作について説明する。
いま、コード生成部1より第5図に示す状態
のコードが作成され、これが第8図イに示すよ
うな状態で命令メモリ4に格納されており、順
番(15)〜(20)がそのまま命令メモリ4のア
ドレスに相当するものとする。そして複合命令
化処理部2がコード生成部1のコード作成状態
を監視し、命令メモリ4のアドレス「15」とア
ドレス「20」に格納されているコードを複合命
令化すべきであると判断したとき、アドレス
「16」〜アドレス「19」間に存在するコードが
AレジスタとBレジスタをdefの状態で使用し
ていないことをチエツクしなければならない。
したがつて複合命令化処理部2は、第1アドレ
ス・レジスタ8にアドレス「16」をセツトし、
第2アドレス・レジスタ9にアドレス「19」を
セツトし、情報選択レジスタ10にb2,b4に相
当のビツトに「1」を記入した「0101」を記入
し、各コードのb2,b4に対する情報選択を指示
する。それから複合命令化処理部2はレジスタ
管理部3に起動信号を送出する。
コントローラ23はこの複合命令化処理部2
からの起動信号を受けたとき、アドレス判定部
19、アドレス・カウントアツプ部20、アン
ド操作部21、オア操作部22を起動する。
第1アドレス・レジスタ8にセツトされたア
ドレス「16」は第3アドレス・レジスタ12に
セツトされる。アドレス判定部19はこの第3
アドレス・レジスタ12にセツトされたアドレ
ス「16」が第2アドレス・レジスタ9にセツト
されたアドレス「19」に達しないので、第3ア
ドレス・レジスタ12にセツトされたアドレス
を第4アドレス・レジスタ13に出力され、こ
れにより命令アドレス・レジスタ7にアドレス
「16」がセツトされ命令メモリ4の当該アドレ
スが読出されてそのコード及びレジスタ使用情
報が出力レジスタ6に出力される。そしてこの
レジスタ使用情報が第1情報レジスタ15にセ
ツトされ、前記情報選択レジスタ10で指示さ
れているb1〜b4「0101」に対するビツト対応の
論理積がアンド操作部21で求められる。した
がつて命令メモリ4のアドレス「16」に記入さ
れているコードがAレジスタ及びBレジスタを
使用していないときには第1情報レジスタ15
に「0000」がセツトされるので、アンド操作部
21からは「0000」が出力され、これが第2情
報レジスタ16にセツトされる。
この第2情報レジスタ16にセツトされたデ
ータは、オア操作部22を経由して第3情報レ
ジスタ18に伝達され、それから情報累積レジ
スタ17にセツトされる。
一方、第4アドレス・レジスタ13にセツト
されたアドレス「16」はアドレス・カウントア
ツプ部20により+1されて「17」となり、第
5アドレス・レジスタ14を経由して第3アド
レス・レジスタ12にセツトされる。そしてこ
のアドレス「17」が、これまた第2アドレス・
レジスタ9にセツトされているアドレス「19」
に達したかどうかの判別が行なわれ、それから
このアドレス「17」が第4アドレス・レジスタ
13にセツトされ、同様にして命令メモリ4の
アクセスが行われる。そしてこのアドレス
「17」におけるコードのレジスタ使用情報が第
1情報レジスタ15にセツトされ、前記と同様
なアンド操作がアンド操作部21により行われ
る。
このようなことが順次行なわれて第3アドレ
ス・レジスタ12にアドレス「19」がセツトさ
れたときアドレス判定部19はコントローラ2
3に対して、このアドレスが第2アドレス・レ
ジスタ9にセツトされた値と一致することを報
告し、第4アドレス・レジスタ13にこのアド
レス「19」を出力する。コントローラ23はこ
れによりアドレス・カウントアツプ部20の動
作を停止させる。ところで命令メモリ4では第
4アドレス・レジスタ13を経由して命令アド
レス・レジスタ7にセツトされたアドレス
「19」に対するアクセスが行なわれ、そのコー
ドに付加されたレジスタ使用情報が第1情報レ
ジスタ15にセツトされ、前記の場合と同様に
アンド操作されてこれが第2情報レジスタ16
にセツトされ、これと情報累積レジスタ17に
セツトされているアドレス「16」〜「18」まで
のレジスタ使用情報とビツト対応してオア操作
されて第3情報レジスタ18を経由して、今度
はアドレス「16」〜「19」までのレジスタ使用
情報が情報累積レジスタ17にセツトされる。
それからコントローラ23より出力指令がオア
操作部22に伝達されるので、オア操作部22
はこの情報累積レジスタ17に累積されたレジ
スタ使用情報を第3情報レジスタ18を経由し
て使用情報レジスタ11に出力する。
もし命令メモリのアドレス「16」〜「19」に
記入されたコードがAレジスタもBレジスタも
使用しなければ(b2,b4に関する態様で)使用
情報レジスタ11には「0000」が記入されるこ
とになる。したがつて複合命令化処理部2は使
用情報レジスタ11に記入されたデータより前
記アドレス区間内におけるコードAレジスタも
Bレジスタも使用されていないことを認識す
る。そしてその結果第8図ロに示す如くアドレ
ス「15」と「20」のコードを複合化した複合命
令を作成し、これを入出力レジスタ5にセツト
する。そしてコントローラ23からこのセツト
に必要なアドレス命令アドレス・レジスタに送
出させる。このようにして、第8図ロに示す如
く、複合命令が命令メモリ4に記入されること
になる。
ところが、命令メモリ4のアドレス「16」と
「19」の間に、例えば「ADD A,B」のよう
に、AレジスタのデータとBレジスタのデータ
を加算し、これをAレジスタにセツトするよう
なコードが存在する場合にはそのレジスタ使用
情報は「1110」と記入されており、その結果、
使用情報レジスタ11には「0100」(b1,b3
情報選択レジスタ10で「0」のため)がレジ
スタ管理部3から出力される。複合命令化処理
部2はこれによりAレジスタを書替えるコード
がアドレス「16」〜「19」に存在することを判
別し、このような場合には複合命令化処理を行
わない。
なお前記の説明ではAレジスタとBレジスタ
の2つのレジスタが使用される例について説明
したが、勿論管理されるレジスタは2つのみに
限定されるものではなく適宜増加することがで
きる。そしてこれに応じて使用情報ビツトも増
加することになる。
(7) 発明の効果 本発明によれば、コードにレジスタ使用情報ビ
ツトを付加し、コードを移動処理するときこのレ
ジスタ使用情報ビツトを付加したまま移動するの
で、レジスタ関連処理におけるレジスタ管理はす
べてコードに付加したレジスタ使用情報ビツトを
チエツクすることにより可能になる。したがつて
従来のようにコードの移動に伴つてその書替が必
要となるレジスタ情報テーブルを作成する必要が
ない。
このように本発明によれば、複合命令生成のと
きレジスタ情報を容易にチエツクできるのみなら
ず、コードの移動にともなうレジスタ情報テーブ
ルを修正する手間もいらなくなり、コードを移動
してもレジスタ管理を容易に、正確に実行でき
る。
【図面の簡単な説明】
第1図は複合命令化処理の説明図、第2図は複
合命令化処理ができないケースの説明図、第3
図、第4図は従来のレジスタ管理及びその問題点
の説明図、第5図、第6図は本発明における生成
コード及びその説明図、第7図及び第8図は本発
明の動作説明図、第9図は本発明の一実施例構成
図である。 図中、1はコード生成部、2は複合命令化処理
部、3はレジスタ管理部、4は命令メモリ、5は
入出力レジスタ、6は出力レジスタ、7は命令ア
ドレス・レジスタ、8は第1アドレス・レジス
タ、9は第2アドレス・レジスタ、10は情報選
択レジスタ、11は使用情報レジスタ、12は第
3アドレス・レジスタ、13は第4アドレス・レ
ジスタ、14は第5アドレス・レジスタ、15は
第1情報レジスタ、16は第2情報レジスタ、1
7は情報累積レジスタ、18は第3情報レジス
タ、19はアドレス判定部、20はアドレス・カ
ウントアツプ部、21はアンド操作部、22はオ
ア操作部、23はコントローラである。

Claims (1)

  1. 【特許請求の範囲】 1 メモリから第1のレジスタへデータを転送す
    る転送命令と、メモリから第2のレジスタへデー
    タを転送する転送命令と、メモリから第1のレジ
    スタへデータを転送する動作とメモリから第2の
    レジスタへデータを転送する動作を同時に実行可
    能な複合命令とを有するデータ処理装置を対象と
    し、高級言語で記述されたソースプログラムから
    オブジエクトコードを作成するコンパイラにおい
    て、 メモリから第1のレジスタへデータを転送する
    転送命令と、メモリから第2のレジスタへデータ
    を転送する転送命令とをまとめて複合命令を生成
    する複合命令化処理手段と、 オブジエクトコードが使用するレジスタのレジ
    スタ使用情報を付加するコード生成手段と、 前記レジスタ使用情報が付加されたコードを記
    入するコード用メモリ手段と、 前記複合命令化処理手段からの前記コード用メ
    モリ手段の調査範囲を指示する情報にもとづき、
    前記コード用メモリ手段へのアクセスアドレスを
    生成するコード用メモリアクセスアドレス生成手
    段と、 前記複合命令化処理手段からの選択指示にもと
    づき前記コード用メモリ手段から読み出された前
    記レジスタ使用情報から所要の情報を抽出するレ
    ジスタ使用情報抽出手段を有し、 前記複合命令化処理手段は管理すべき範囲内の
    コードに付加されたレジスタ使用情報のチエツク
    結果にもとづいて複合命令を生成するようにした
    ことを特徴とするコンパイラにおけるレジスタ管
    理方式。
JP4387382A 1982-03-19 1982-03-19 コンパイラにおけるレジスタ管理方式 Granted JPS58161045A (ja)

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 JPS58161045A (ja) 1983-09-24
JPH0228174B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
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 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 最適化コンパイラ
US4656582A (en) * 1985-02-04 1987-04-07 International Business Machines Corporation Generating storage reference instructions in an optimizing compiler

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OBJECT CODE OPTINIZATION=1969 *

Also Published As

Publication number Publication date
JPS58161045A (ja) 1983-09-24

Similar Documents

Publication Publication Date Title
US5608867A (en) Debugging system using virtual storage means, a normal bus cycle and a debugging bus cycle
JPS60238944A (ja) トレ−ス用記憶装置
JPS6376034A (ja) 多重アドレス空間制御方式
US5657484A (en) Method for carrying out a boolean operation between any two bits of any two registers
JPH1078889A (ja) マイクロコンピュータ
JP2738365B2 (ja) マイクロコンピュータ用プログラム変換方法及びそのプログラムを用いたマイクロコンピュータ
JPS60101644A (ja) ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ
JPS623461B2 (ja)
JPS6122817B2 (ja)
JPH0228174B2 (ja)
US6233732B1 (en) Compiling system using intermediate codes to store a plurality of values
US5197141A (en) Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions
JP3132566B2 (ja) 命令先行制御装置
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JPH01177145A (ja) 情報処理装置
JP2754786B2 (ja) 情報処理装置
JP2570846B2 (ja) 先取り制御ユニット
JP2503634B2 (ja) マイクロプログラム制御装置
JP2622026B2 (ja) 中央処理装置におけるレジスタ書込制御方式
JPH01255933A (ja) 掃出し制御方式
JPS62182843A (ja) 高速コンパイル/リンク方式
JP2005284963A (ja) プログラムローディング装置およびプログラムローディング方法
JP2962209B2 (ja) インサーキットエミュレータ
JPH0535499A (ja) データ処理装置及びデータ処理方法
JPS6129940A (ja) 演算装置