JPS6365530A - コ−ド最適化方式 - Google Patents
コ−ド最適化方式Info
- Publication number
- JPS6365530A JPS6365530A JP20935186A JP20935186A JPS6365530A JP S6365530 A JPS6365530 A JP S6365530A JP 20935186 A JP20935186 A JP 20935186A JP 20935186 A JP20935186 A JP 20935186A JP S6365530 A JPS6365530 A JP S6365530A
- Authority
- JP
- Japan
- Prior art keywords
- list
- holding
- assembler
- template
- register
- 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
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000005206 flow analysis Methods 0.000 claims abstract description 21
- 238000005457 optimization Methods 0.000 claims description 36
- 238000000034 method Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は電子計算機システムなどで利用される高級言語
のソースコードの翻訳に関し、特に目的コードの最適化
方式に関する。
のソースコードの翻訳に関し、特に目的コードの最適化
方式に関する。
C従来の技術〕
電子計算機システム上で、高級言語のソースコードをコ
ンパイラによりアセンブラソースコード(アセンブラ命
令)に翻訳する場合、コンパイラから出力されたアセン
ブラ命令列を更に効率の良いものにする為、一度コンパ
イラから出力されたアセンブラ命令列に対し最適化処理
を施すことがある。
ンパイラによりアセンブラソースコード(アセンブラ命
令)に翻訳する場合、コンパイラから出力されたアセン
ブラ命令列を更に効率の良いものにする為、一度コンパ
イラから出力されたアセンブラ命令列に対し最適化処理
を施すことがある。
従来、上述したような最適化処理を行なうコンパイラお
よび最適化処理部は、各々次のような構成要素から構成
されていた。
よび最適化処理部は、各々次のような構成要素から構成
されていた。
・コンパイラ
(1) ソースコードを入力して、語い解析、構文解
析、意味解析を行ない、弐トリーを生成する弐トリー生
成手段 (2)上記弐トリー生成手段で生成された式トリーを保
持する弐トリー保持手段 (3)式トリーのパターン毎にコード生成の為の情報が
対応付けられているテンプレートを保持するテンプレー
ト保持手段 (4) 上記式トリー保持手段に保持されている弐ト
リーと、上記テンプレート保持手段に保持されているテ
ンプレートとを照合し、−敗するテンプレートがあれば
、それに対応するアセンブラ命令を生成し、またその時
レジスタ等のリソース管理も行なうコード生成手段 ・最適化処理部 (1)上記コンパイラから出力されるアセンブラ命令を
入力し、一つのアセンブラ命令毎にメモリ上にノードを
作成し、その前後のノードを連結しリスト化するリスト
生成手段 (2)上記リスト生成手段で生成されたリストを保持す
るリスト保持手段 (3) 上記リスト保持手段に保持されているリスト
をノード毎にたどってレジスタの使用状態を解析してい
くデータフロー解析手段 (4)上記データフロー解析手段によって解析されたレ
ジスタ使用状態の情報に基づいて冗長な命令の削除、変
更を行なうレジスタ管理最適化手段〔発明が解決しよう
とする問題点〕 上述したように、従来の最適化方式では、リスト生成手
段が一つのアセンブラ命令毎にノードを作成し、データ
フロー解析手段はそのノードをたどワてレジスタの使用
状態を解析していくので、処理時間の大部分がデータフ
ロー解析の為のリスト処理が占め、アセンブラ命令の数
が増加すると共に最適化処理に要する時間が急増すると
いう問題がある。特に、従来方式では、コード生成時に
得られるレジスタの使用状態に関する情報が最適化処理
部に伝わらない為、最適化処理におけるデータフロー解
析時に再びレジスタ使用状態を1アセンブラ命令毎に解
析していかなければならず、余分な処理時間を要してし
まうという問題がある。
析、意味解析を行ない、弐トリーを生成する弐トリー生
成手段 (2)上記弐トリー生成手段で生成された式トリーを保
持する弐トリー保持手段 (3)式トリーのパターン毎にコード生成の為の情報が
対応付けられているテンプレートを保持するテンプレー
ト保持手段 (4) 上記式トリー保持手段に保持されている弐ト
リーと、上記テンプレート保持手段に保持されているテ
ンプレートとを照合し、−敗するテンプレートがあれば
、それに対応するアセンブラ命令を生成し、またその時
レジスタ等のリソース管理も行なうコード生成手段 ・最適化処理部 (1)上記コンパイラから出力されるアセンブラ命令を
入力し、一つのアセンブラ命令毎にメモリ上にノードを
作成し、その前後のノードを連結しリスト化するリスト
生成手段 (2)上記リスト生成手段で生成されたリストを保持す
るリスト保持手段 (3) 上記リスト保持手段に保持されているリスト
をノード毎にたどってレジスタの使用状態を解析してい
くデータフロー解析手段 (4)上記データフロー解析手段によって解析されたレ
ジスタ使用状態の情報に基づいて冗長な命令の削除、変
更を行なうレジスタ管理最適化手段〔発明が解決しよう
とする問題点〕 上述したように、従来の最適化方式では、リスト生成手
段が一つのアセンブラ命令毎にノードを作成し、データ
フロー解析手段はそのノードをたどワてレジスタの使用
状態を解析していくので、処理時間の大部分がデータフ
ロー解析の為のリスト処理が占め、アセンブラ命令の数
が増加すると共に最適化処理に要する時間が急増すると
いう問題がある。特に、従来方式では、コード生成時に
得られるレジスタの使用状態に関する情報が最適化処理
部に伝わらない為、最適化処理におけるデータフロー解
析時に再びレジスタ使用状態を1アセンブラ命令毎に解
析していかなければならず、余分な処理時間を要してし
まうという問題がある。
本発明はこのような従来の問題を解決したもので、その
目的は、最適化処理を高速に行なうことができるように
することにある。
目的は、最適化処理を高速に行なうことができるように
することにある。
上記従来の問題点を解決する本発明のコード最適化方式
は、ソースファイルから高級言語のソースコードを入力
して語い解析、構文解析、意味解析を行ない、式トリー
を生成する式トリー生成手段と、 該弐トリー生成手段によって生成された弐トリーを保持
する式トリー保持手段と、 式トリーのパターン毎にコード生成の為の情報が対応付
けられているテンプレートを保持するテンプレート保持
手段と、 前記式トリー保持手段に保持されている弐トリーと前記
テンプレート保持手段に保持されているテンプレートと
を照合し、一致するテンプレートがあればそれに対応す
るアセンブラ命令を生成し、その際にレジスタ等のリソ
ース管理も行なうコード生成手段と、 該コード生成手段によって前記式トリーと一敗したテン
プレートのパターン内で、参照、書込みが行なわれるレ
ジスタの使用情報を出力するレジスタ情報出力手段とを
含むコンパイラ、前記コード生成手段で生成されたアセ
ンブラ命令と前記レジスタ情報出力手段から出力された
レジスタに関する情報とを対応付けて格納するアセンブ
ラソースファイル、 該アセンブラソースファイルを入力し、一つのテンプレ
ートのパターンに対応する個数のアセンブラ命令を1ブ
ロックとして扱って該ブロックに対応する前記アセンブ
ラソースファイル内のレジスタ情報を保持させた一つの
ノードを順次に作成し、該ノードをリスト化するリスト
生成手段と、該リスト生成手段によって生成されたリス
トを保持するリスト保持手段と、 該リスト保持手段に保持されているリストをノード毎に
たどり、レジスタの使用状態を解析するデータフロー解
析手段と、 該データフロー解析手段によって解析されたレジスタの
使用状態の情報に基づいて冗長な命令を削除、変更する
レジスタ管理最適化手段とを含む最適化処理部を有する
。
は、ソースファイルから高級言語のソースコードを入力
して語い解析、構文解析、意味解析を行ない、式トリー
を生成する式トリー生成手段と、 該弐トリー生成手段によって生成された弐トリーを保持
する式トリー保持手段と、 式トリーのパターン毎にコード生成の為の情報が対応付
けられているテンプレートを保持するテンプレート保持
手段と、 前記式トリー保持手段に保持されている弐トリーと前記
テンプレート保持手段に保持されているテンプレートと
を照合し、一致するテンプレートがあればそれに対応す
るアセンブラ命令を生成し、その際にレジスタ等のリソ
ース管理も行なうコード生成手段と、 該コード生成手段によって前記式トリーと一敗したテン
プレートのパターン内で、参照、書込みが行なわれるレ
ジスタの使用情報を出力するレジスタ情報出力手段とを
含むコンパイラ、前記コード生成手段で生成されたアセ
ンブラ命令と前記レジスタ情報出力手段から出力された
レジスタに関する情報とを対応付けて格納するアセンブ
ラソースファイル、 該アセンブラソースファイルを入力し、一つのテンプレ
ートのパターンに対応する個数のアセンブラ命令を1ブ
ロックとして扱って該ブロックに対応する前記アセンブ
ラソースファイル内のレジスタ情報を保持させた一つの
ノードを順次に作成し、該ノードをリスト化するリスト
生成手段と、該リスト生成手段によって生成されたリス
トを保持するリスト保持手段と、 該リスト保持手段に保持されているリストをノード毎に
たどり、レジスタの使用状態を解析するデータフロー解
析手段と、 該データフロー解析手段によって解析されたレジスタの
使用状態の情報に基づいて冗長な命令を削除、変更する
レジスタ管理最適化手段とを含む最適化処理部を有する
。
データフロー解析の為のリスト処理は1アセンブラ命令
毎に行なわれるのではなく、コンパイラから出力された
複数個のアセンブラ命令毎つまりブロック毎に1テなわ
れ、一つのブロックが一つのノードに対応させられてリ
スト処理され、なおかつ、従来は利用されていなかった
コンパイラ内部で得ることができるブロック内のレジス
タ使用情報をそのノードに付加して利用可能とすること
により、データフロー解析の時間を大幅に削減し、これ
によって最適化処理に要する時間を大幅に短縮するよう
に構成されている。
毎に行なわれるのではなく、コンパイラから出力された
複数個のアセンブラ命令毎つまりブロック毎に1テなわ
れ、一つのブロックが一つのノードに対応させられてリ
スト処理され、なおかつ、従来は利用されていなかった
コンパイラ内部で得ることができるブロック内のレジス
タ使用情報をそのノードに付加して利用可能とすること
により、データフロー解析の時間を大幅に削減し、これ
によって最適化処理に要する時間を大幅に短縮するよう
に構成されている。
次に本発明の実施例について図面を参照して説明する。
第1図は本発明の実施例の機能ブロック図であり、同図
を参照すれば本実施例は、ソースファイル1と、コンパ
イラ20と、アセンブラソースファイル8と、最適化処
理部21と、最適化後アセンブラソースファイル13と
から構成されている。また、コンパイラ20は、式トリ
ー生成手段2と、式トリー保持手段3と、コード生成手
段4と、テンブレー 1−保持手段5と、テンプレート
情報出力手段6と、レジスタ情報出力手段7とを含み、
最適化処理部21は、リスト生成手段9と、データフロ
ー解析手段10と、レジスタ管理最適化手段11と、リ
スト保持手段工2とを含んでいる。
を参照すれば本実施例は、ソースファイル1と、コンパ
イラ20と、アセンブラソースファイル8と、最適化処
理部21と、最適化後アセンブラソースファイル13と
から構成されている。また、コンパイラ20は、式トリ
ー生成手段2と、式トリー保持手段3と、コード生成手
段4と、テンブレー 1−保持手段5と、テンプレート
情報出力手段6と、レジスタ情報出力手段7とを含み、
最適化処理部21は、リスト生成手段9と、データフロ
ー解析手段10と、レジスタ管理最適化手段11と、リ
スト保持手段工2とを含んでいる。
ソースファイル1には、翻訳の対象となる高級言語のソ
ースコードが格納されており、コンパイラ20の入力と
なる。
ースコードが格納されており、コンパイラ20の入力と
なる。
コンパイラ20は、ソースファイル1からソースコード
を入力してアセンブラ命令に翻訳し、そのアセンブラ命
令などをアセンブラソースファイル8に出力する。
を入力してアセンブラ命令に翻訳し、そのアセンブラ命
令などをアセンブラソースファイル8に出力する。
コンパイラ20内部での制御の流れは、先ず、式トリー
生成手段2がソースファイル1からソースコードを人力
して弐トリーを生成し、その弐トリーを式トリー保持手
段3に設定し、制御をコード生成手段4に渡す。
生成手段2がソースファイル1からソースコードを人力
して弐トリーを生成し、その弐トリーを式トリー保持手
段3に設定し、制御をコード生成手段4に渡す。
テンプレート保持手段5には式トリーのパターン毎にコ
ード生成の為の情報が対応付けられているテンプレート
が予め保持されており、コード生成手段4は式トリー生
成手段2から制御を渡されると、弐トリー保持手段3に
保持されている弐トリーとテンプレート保持手段5に保
持されているテンプレートとの照合を行なう。そして、
式トリーと一敗するテンプレートが見つかると、そのテ
ンプレートに保持されている情報に従って、幾つかのア
センブラ命令を生成する。なお、このコード生成をする
際にはレジスタの割付けも行なわれる。また、コード生
成手段4は式トリーと一致するテンプレートが見つかっ
た時点で一度制御をテンプレート情報出力手段6に渡す
。
ード生成の為の情報が対応付けられているテンプレート
が予め保持されており、コード生成手段4は式トリー生
成手段2から制御を渡されると、弐トリー保持手段3に
保持されている弐トリーとテンプレート保持手段5に保
持されているテンプレートとの照合を行なう。そして、
式トリーと一敗するテンプレートが見つかると、そのテ
ンプレートに保持されている情報に従って、幾つかのア
センブラ命令を生成する。なお、このコード生成をする
際にはレジスタの割付けも行なわれる。また、コード生
成手段4は式トリーと一致するテンプレートが見つかっ
た時点で一度制御をテンプレート情報出力手段6に渡す
。
テンプレート情報出力手段6はコード生成手段4から制
御を渡されると、コード生成手段4において見つけられ
た式トリーと一致したテンプレートを識別するためのテ
ンプレート番号等の識別情報をアセンブラソースファイ
ル8に出力し、制御をコード生成手段4に戻す。
御を渡されると、コード生成手段4において見つけられ
た式トリーと一致したテンプレートを識別するためのテ
ンプレート番号等の識別情報をアセンブラソースファイ
ル8に出力し、制御をコード生成手段4に戻す。
コード生成出力手段4はテンプレート情報出力手段6か
ら制御が戻されると、上記生成したアセンブラ命令のア
センブラソースファイル8に対する出力を行ない、制御
をレジスタ情報出力手段7に移す。
ら制御が戻されると、上記生成したアセンブラ命令のア
センブラソースファイル8に対する出力を行ない、制御
をレジスタ情報出力手段7に移す。
レジスタ情報出力手段7は、コード生成手段4から制御
を移されると、コード生成手段4から一つの弐トリーに
対応して今回出力された複数個のアセンブラ命令の範囲
内で、参照、書込みが行なわれるレジスタに関する情報
をアセンブラソースファイル8に出力し、制御をコード
生成手段4に戻す。
を移されると、コード生成手段4から一つの弐トリーに
対応して今回出力された複数個のアセンブラ命令の範囲
内で、参照、書込みが行なわれるレジスタに関する情報
をアセンブラソースファイル8に出力し、制御をコード
生成手段4に戻す。
コード生成手段4は、レジスタ情報出力手段7から制御
が戻されると、残りのソースコードがあれば上記処理を
繰返し、全てのコード生成が完了すると、コンパイラ2
0の処理を終了させる。
が戻されると、残りのソースコードがあれば上記処理を
繰返し、全てのコード生成が完了すると、コンパイラ2
0の処理を終了させる。
上述のようなコンパイラ20の処理によりて、アセンブ
ラソースファイル8には、例えば第2図に示すように一
つの弐トリーに対応して生成された複数個のアセンブラ
命令Bと、その複数個のアセンブラ命令Bの範囲内で参
照、書込みが行なわれるレジスタに関する情報Cと、上
記一つの弐トリーと一敗したテンプレートの識別情報A
とが、複数組格納されることになる。
ラソースファイル8には、例えば第2図に示すように一
つの弐トリーに対応して生成された複数個のアセンブラ
命令Bと、その複数個のアセンブラ命令Bの範囲内で参
照、書込みが行なわれるレジスタに関する情報Cと、上
記一つの弐トリーと一敗したテンプレートの識別情報A
とが、複数組格納されることになる。
一方、最適化処理部21は、コンパイラ20から出力さ
れたアセンブラソースファイル8の中のアセンブラ命令
列を入力し、より効率の良いアセンブラ命令列に変換し
て、最適化後アセンブラソースファイル13に出力する
。
れたアセンブラソースファイル8の中のアセンブラ命令
列を入力し、より効率の良いアセンブラ命令列に変換し
て、最適化後アセンブラソースファイル13に出力する
。
最適化処理部21内部の制御の流れは、先ず、リスト生
成手段9がアセンブラソースファイル8からテンプレー
トの識別情報Aを入力し、この入力したテンプレートの
識別情報Aに基づいて以下のアセンブラ命令Bに含まれ
るアセンブラ命令数を識別して複数個のアセンブラ命令
Bを取出し、この複数のアセンブラ命令Bを一つのノー
ドに対応させる。また、アセンブラソースファイル8か
らレジスタに関する情報Cを読取り、その情報を上記ノ
ードに保持させる。このような動作を7センブラソース
フアイル8に格納されたテンプレートの識別情報に基づ
く個数のアセンブラ命令毎に実行して順次に作成した前
後のノードを連結してリスト化し、このリストをリスト
保持手段12に設定する。そしてその後、制御をデータ
フロー解析手段10に移す。
成手段9がアセンブラソースファイル8からテンプレー
トの識別情報Aを入力し、この入力したテンプレートの
識別情報Aに基づいて以下のアセンブラ命令Bに含まれ
るアセンブラ命令数を識別して複数個のアセンブラ命令
Bを取出し、この複数のアセンブラ命令Bを一つのノー
ドに対応させる。また、アセンブラソースファイル8か
らレジスタに関する情報Cを読取り、その情報を上記ノ
ードに保持させる。このような動作を7センブラソース
フアイル8に格納されたテンプレートの識別情報に基づ
く個数のアセンブラ命令毎に実行して順次に作成した前
後のノードを連結してリスト化し、このリストをリスト
保持手段12に設定する。そしてその後、制御をデータ
フロー解析手段10に移す。
データフロー解析手段10は、リスト生成手段9から制
御を渡されると、リスト保持手段12に保持されている
リストを前後にたどりながら、各ノードに保持されてい
るレジスタに関する情報に基づき、レジスタの使用状態
を解析していき、その結果得られた情報と制御をレジス
タ管理最適化手段11に渡す。このレジスタ管理最適化
手段11においては、第2図の複数個のアセンブラ命令
B内でのレジスタに関する情報はレジスタに関する情報
Cに記述されているので、その範囲内での処理は省け、
またノード数が従来より少なくなることから処理が高速
化する。
御を渡されると、リスト保持手段12に保持されている
リストを前後にたどりながら、各ノードに保持されてい
るレジスタに関する情報に基づき、レジスタの使用状態
を解析していき、その結果得られた情報と制御をレジス
タ管理最適化手段11に渡す。このレジスタ管理最適化
手段11においては、第2図の複数個のアセンブラ命令
B内でのレジスタに関する情報はレジスタに関する情報
Cに記述されているので、その範囲内での処理は省け、
またノード数が従来より少なくなることから処理が高速
化する。
さて、レジスタ管理最適化手段11は、データフロー解
析手段10からレジスタ使用状態情報と制御が渡される
と、その情報に基づいて冗長な命令の削除や変更を行な
い、アセンブラ命令列を最適化する。そして、最適化が
終了したら、アセンブラ命令列を最適化後アセンブラソ
ースファイル13に出力し、最適化処理全体の制御を終
了させる。
析手段10からレジスタ使用状態情報と制御が渡される
と、その情報に基づいて冗長な命令の削除や変更を行な
い、アセンブラ命令列を最適化する。そして、最適化が
終了したら、アセンブラ命令列を最適化後アセンブラソ
ースファイル13に出力し、最適化処理全体の制御を終
了させる。
以上、本発明の実施例について説明したが、本発明は以
上の実施例にのみ限定されずその他各種の付加変更が可
能である。例えば、上記実施例では、最適化処理部21
のリスト生成手段9で一つのノードに対応させるアセン
ブラ命令数を識別させる為にテンプレートの識別情報を
用いたが、これはテンプレート情報を最適化処理部21
における他の処理で利用し得るよう便宜を図ったもので
あり、それ以外に例えばアセンブラ谷令数の個数を直接
に指定するようにしても良い。
上の実施例にのみ限定されずその他各種の付加変更が可
能である。例えば、上記実施例では、最適化処理部21
のリスト生成手段9で一つのノードに対応させるアセン
ブラ命令数を識別させる為にテンプレートの識別情報を
用いたが、これはテンプレート情報を最適化処理部21
における他の処理で利用し得るよう便宜を図ったもので
あり、それ以外に例えばアセンブラ谷令数の個数を直接
に指定するようにしても良い。
以上説明したように、本発明の最適化方式では、データ
フロー解析の為のリスト処理を1アセンブラ命令毎に行
なうのではなく、コンパイラから出力された情報を下に
複数個のアセンブラ命令を1ブロックとして扱って一つ
のノードに対応させてリスト処理を行ない、なお且つ、
従来は利用されていなかったコンパイラ内部で得ること
ができるレジスタに関する情報をアセンブラソースファ
イルに含めて最適化処理部で利用できるようにしたので
、データフロー解析の時間が短くなり、これによって最
適化処理に要する時間が大幅に短縮されるという効果が
ある。
フロー解析の為のリスト処理を1アセンブラ命令毎に行
なうのではなく、コンパイラから出力された情報を下に
複数個のアセンブラ命令を1ブロックとして扱って一つ
のノードに対応させてリスト処理を行ない、なお且つ、
従来は利用されていなかったコンパイラ内部で得ること
ができるレジスタに関する情報をアセンブラソースファ
イルに含めて最適化処理部で利用できるようにしたので
、データフロー解析の時間が短くなり、これによって最
適化処理に要する時間が大幅に短縮されるという効果が
ある。
第1図は本発明の実施例の機能ブロック図および、
第2図はアセンブラソースファイル8の格納内容例を示
す図である。 図において、l・・・ソースファイル、2・・・式トリ
ー生成手段、3・・・式トリー保持手段、4・・・コー
ド生成手段、5・・・テンプレート保持手段、6・・・
テンプレート情報出力手段、7・・・レジスタ情報出力
手段、8・・・アセンブラソースファイル、9・・・リ
スト生成手段、10・・・データフロー解析手段、11
・・・レジスタ管理最適化手段、12・・・リスト保持
手段、13・・・最適化後アセンブラソースファイル、
20・・・コンパイラ、21・・・最適化処理部。
す図である。 図において、l・・・ソースファイル、2・・・式トリ
ー生成手段、3・・・式トリー保持手段、4・・・コー
ド生成手段、5・・・テンプレート保持手段、6・・・
テンプレート情報出力手段、7・・・レジスタ情報出力
手段、8・・・アセンブラソースファイル、9・・・リ
スト生成手段、10・・・データフロー解析手段、11
・・・レジスタ管理最適化手段、12・・・リスト保持
手段、13・・・最適化後アセンブラソースファイル、
20・・・コンパイラ、21・・・最適化処理部。
Claims (1)
- 【特許請求の範囲】 ソースファイルから高級言語のソースコードを入力して
語い解析、構文解析、意味解析を行ない、式トリーを生
成する式トリー生成手段と、 該式トリー生成手段によって生成された式トリーを保持
する式トリー保持手段と、 式トリーのパターン毎にコード生成の為の情報が対応付
けられているテンプレートを保持するテンプレート保持
手段と、 前記式トリー保持手段に保持されている式トリーと前記
テンプレート保持手段に保持されているテンプレートと
を照合し、一致するテンプレートがあればそれに対応す
るアセンブラ命令を生成し、その際にレジスタ等のリソ
ース管理も行なうコード生成手段と、 該コード生成手段によって前記式トリーと一致したテン
プレートのパターン内で、参照、書込みが行なわれるレ
ジスタに関する情報を出力するレジスタ情報出力手段と
を含むコンパイラ、 前記コード生成手段で生成されたアセンブラ命令と前記
レジスタ情報出力手段から出力されたレジスタ情報とを
対応付けて格納するアセンブラソースファイル、 該アセンブラソースファイルを入力し、一つのテンプレ
ートのパターンに対応する個数のアセンブラ命令を1ブ
ロックとして扱って該ブロックに対応する前記アセンブ
ラソースファイル内のレジスタ情報を保持させた一つの
ノードを順次に作成し、該ノードをリスト化するリスト
生成手段と、該リスト生成手段によって生成されたリス
トを保持するリスト保持手段と、 該リスト保持手段に保持されているリストをノード毎に
たどり、レジスタの使用状態を解析するデータフロー解
析手段と、 該データフロー解析手段によって解析されたレジスタの
使用状態の情報に基づいて冗長な命令を削除、変更する
レジスタ管理最適化手段とを含む最適化処理部を具備し
たことを特徴とするコード最適化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20935186A JPS6365530A (ja) | 1986-09-05 | 1986-09-05 | コ−ド最適化方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20935186A JPS6365530A (ja) | 1986-09-05 | 1986-09-05 | コ−ド最適化方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6365530A true JPS6365530A (ja) | 1988-03-24 |
Family
ID=16571510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20935186A Pending JPS6365530A (ja) | 1986-09-05 | 1986-09-05 | コ−ド最適化方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6365530A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04247527A (ja) * | 1990-10-15 | 1992-09-03 | Internatl Business Mach Corp <Ibm> | コンピュータの命令スケジューラ |
JPH04263331A (ja) * | 1990-10-15 | 1992-09-18 | Internatl Business Mach Corp <Ibm> | コンピュータ用大域命令スケジューラ |
-
1986
- 1986-09-05 JP JP20935186A patent/JPS6365530A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04247527A (ja) * | 1990-10-15 | 1992-09-03 | Internatl Business Mach Corp <Ibm> | コンピュータの命令スケジューラ |
JPH04263331A (ja) * | 1990-10-15 | 1992-09-18 | Internatl Business Mach Corp <Ibm> | コンピュータ用大域命令スケジューラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7917899B2 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
JPS63201834A (ja) | オブジエクト・モジユール生成方法 | |
KR100853933B1 (ko) | 메인프레임 시스템의 응용프로그램을 개방형 시스템에적합한 응용프로그램으로 변환하는 마이그레이션 장치 및그 방법 | |
ITRM940789A1 (it) | "metodo e procedimento di comunicazione inter-macchina e metodo generalizzato per la riparazione di programmi per esso" | |
CN112114817B (zh) | 基于cobol语言的数据字典字段信息获取方法及装置 | |
JP3318051B2 (ja) | 翻訳処理方法 | |
JPS6365530A (ja) | コ−ド最適化方式 | |
US5671431A (en) | Method for processing user program on a parallel computer system by inserting a tag during compiling | |
JP3003459B2 (ja) | プログラム作成支援装置 | |
Kumar et al. | Revolutionizing Compilation: Lexical Analysis Approaches for Parallel Multi-Core Processing | |
KR100323372B1 (ko) | 이엠 코드에 대한 실행시간 스택의 타입 분석 방법 | |
Montuelle et al. | Cross software using a universal object module format, CUFOM | |
JP3323147B2 (ja) | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 | |
Ishijima et al. | A Small Engineering Workbench On A Personal Computer | |
JPH0695890A (ja) | コンパイラにおける名前置換方式 | |
KR970011897B1 (ko) | 언어해석 처리장치 | |
Pollice | Using a very high level language to build families of high quality reusable components | |
Diviánszky et al. | Detaching and Reconstructing the Documentary Structure of Source Code | |
JPH05197565A (ja) | 定数領域割り付け処理方法 | |
JPH10133885A (ja) | 一括命令生成コンパイル方法 | |
JPH02253443A (ja) | プログラム生成方法 | |
JPH0328932A (ja) | 拡張された言語仕様のコンパイル方式 | |
Wolberg et al. | Using convert to transform source code | |
Parkes et al. | Phrase Structure Languages and Turing Machines | |
JPH06282443A (ja) | プログラム編集方法と装置 |