JPS6325733A - コンパイラ処理方式 - Google Patents
コンパイラ処理方式Info
- Publication number
- JPS6325733A JPS6325733A JP61167915A JP16791586A JPS6325733A JP S6325733 A JPS6325733 A JP S6325733A JP 61167915 A JP61167915 A JP 61167915A JP 16791586 A JP16791586 A JP 16791586A JP S6325733 A JPS6325733 A JP S6325733A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- intermediate language
- section
- assignment statement
- compiler
- 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
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
- G06F8/44—Encoding
- G06F8/443—Optimisation
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
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、特にコンパイラの最適化処理におけるコピー
伝播方式に関する。
伝播方式に関する。
従来、コピー伝播については、プリンシプルオブ コン
パイラ デザイン、アディソン ウニスレー、1977
、第487頁から第489頁(Principle
of Compiler Dasign+ Addi
sonWcslcyt pp、 487−489 )に
おいて論じられている。この文献においてはコピー伝播
はA=Bという形のものだけとなっており、A=B+C
やA=B (I)+C(I)などのように代入文の右辺
が多項式のコピー文については配慮されていなかった。
パイラ デザイン、アディソン ウニスレー、1977
、第487頁から第489頁(Principle
of Compiler Dasign+ Addi
sonWcslcyt pp、 487−489 )に
おいて論じられている。この文献においてはコピー伝播
はA=Bという形のものだけとなっており、A=B+C
やA=B (I)+C(I)などのように代入文の右辺
が多項式のコピー文については配慮されていなかった。
上記従来技術は多項式のコピー伝播については扱ってお
らず、多項式によって値が定義される変数が唯一の使用
点しかもたず、かつその使用点までに多項式の値が変わ
らない、かつ使用点までに出現する変数の値が伝播によ
って変わらない場合でも伝播およびそのコピー文の削除
が行われない。
らず、多項式によって値が定義される変数が唯一の使用
点しかもたず、かつその使用点までに多項式の値が変わ
らない、かつ使用点までに出現する変数の値が伝播によ
って変わらない場合でも伝播およびそのコピー文の削除
が行われない。
そのために上記コピー文によって定義される変数がレジ
スタ割付けの対象になること、レジスタに割付けられな
い場合には一旦メモリに格納し、その値を使用するとき
に再度メモリからロードする必要があるといった間頭が
あった。
スタ割付けの対象になること、レジスタに割付けられな
い場合には一旦メモリに格納し、その値を使用するとき
に再度メモリからロードする必要があるといった間頭が
あった。
さらに、該使用点が複数存在するときに、これを単項式
伝播と同じように多項式を伝播すると右辺の多項から成
る演算式が該使用点に置きかえられるため、同じ演算式
が複数ケ所に出在しプログラムの冗長度を増加させるこ
とになる。このままでは、実行性能が低下するためコン
パイラはこれら同一演算式を共通式として削除しなけれ
ばならなくなり、コンパイラへの負荷が重くなる。たと
え、共通式削除を施してもこの共通式の演算結果を格納
するための変数を生成する必要があり、トータルとして
変数の数は変わらない。このように使用が複数存在する
場合にはコンパイラへの4!L荷が重くなるためコンパ
イラ時の性能を低下させるだけで実行性能の向上は望め
ないという問題があった・ 本発明の目的は、使用を1回に限るなどの条件下におい
て多項式のコピー伝播を行うことでそのコピー文を削除
することによってレジスタ割付は対象変数を削減し、レ
ジスタに保持できる変数を増加させることでオブジェク
トプログラムの実行性能を向上させることにある。
伝播と同じように多項式を伝播すると右辺の多項から成
る演算式が該使用点に置きかえられるため、同じ演算式
が複数ケ所に出在しプログラムの冗長度を増加させるこ
とになる。このままでは、実行性能が低下するためコン
パイラはこれら同一演算式を共通式として削除しなけれ
ばならなくなり、コンパイラへの負荷が重くなる。たと
え、共通式削除を施してもこの共通式の演算結果を格納
するための変数を生成する必要があり、トータルとして
変数の数は変わらない。このように使用が複数存在する
場合にはコンパイラへの4!L荷が重くなるためコンパ
イラ時の性能を低下させるだけで実行性能の向上は望め
ないという問題があった・ 本発明の目的は、使用を1回に限るなどの条件下におい
て多項式のコピー伝播を行うことでそのコピー文を削除
することによってレジスタ割付は対象変数を削減し、レ
ジスタに保持できる変数を増加させることでオブジェク
トプログラムの実行性能を向上させることにある。
C問題点を解決するための手段]
上記目的は、プログラム内に出現する右辺が多項式の代
入文によって定義される変数の使用が唯一であることを
調べる手段により、達成される。
入文によって定義される変数の使用が唯一であることを
調べる手段により、達成される。
代入文によって定義される変数の使用が唯一であること
を調べる手段は、伝播によってかえって演算量を増加さ
せ、プログラムの冗長度を増加させないことを保証する
!IIIきをする。使用点までに代入文の右辺に出現す
る変数が再定義されないことを調べる手段は、伝播前後
で代入文の右辺で決定される値が同じ値をもつことを保
証するaきをし、使用、改までに出現する変数の値を変
えうるような関数呼び出しが代入文の右辺に存在しない
ことを調べる手段は、伝播前には該代入文の実行によっ
て更新された値が使用されていたのに伝播・削除後は更
新されずに使用されることになり伝播前、後で実行結果
が変わってしまうため使用点までに使用される変数の値
が変わらないことを保証する働きをする。二九らの手段
によって、多項式を伝播することにより実行効率を悪く
することや結果不正を発生させることがない。
を調べる手段は、伝播によってかえって演算量を増加さ
せ、プログラムの冗長度を増加させないことを保証する
!IIIきをする。使用点までに代入文の右辺に出現す
る変数が再定義されないことを調べる手段は、伝播前後
で代入文の右辺で決定される値が同じ値をもつことを保
証するaきをし、使用、改までに出現する変数の値を変
えうるような関数呼び出しが代入文の右辺に存在しない
ことを調べる手段は、伝播前には該代入文の実行によっ
て更新された値が使用されていたのに伝播・削除後は更
新されずに使用されることになり伝播前、後で実行結果
が変わってしまうため使用点までに使用される変数の値
が変わらないことを保証する働きをする。二九らの手段
によって、多項式を伝播することにより実行効率を悪く
することや結果不正を発生させることがない。
以下、本発明の実施例を図面を参照しつつ説明する。第
1図は本発明に用いるコンパイラの一実施例構成図、第
2図は本発明の処理構成図、第3図は本発明の具体例に
よる説明図、第4図は第2図の動作説明図である。
1図は本発明に用いるコンパイラの一実施例構成図、第
2図は本発明の処理構成図、第3図は本発明の具体例に
よる説明図、第4図は第2図の動作説明図である。
第2図において、工は記憶装置に格納されているソース
プログラム、2はコンパイラ、8はコンパイルされて記
憶装置上に格納される目的プログラムである。コンパイ
ラ2は記憶装置からソースプログラムを読み込んで所望
のU的プログラムを記憶装置上に生成する。このとき第
2図に示された各部は次の処理を行う。すなわち、ソー
ス解析部3は読み込んだソースプログラムを文解釈し中
間言語に展開する。中間言語最適化部4は効率のよい目
的プログラムを生成するために中間言語に対して各種の
最適化を施し、中間言語の変更を行う。ここで行われる
最適化は、本処理部9.10において解析される制御フ
ロー、データフロー情。
プログラム、2はコンパイラ、8はコンパイルされて記
憶装置上に格納される目的プログラムである。コンパイ
ラ2は記憶装置からソースプログラムを読み込んで所望
のU的プログラムを記憶装置上に生成する。このとき第
2図に示された各部は次の処理を行う。すなわち、ソー
ス解析部3は読み込んだソースプログラムを文解釈し中
間言語に展開する。中間言語最適化部4は効率のよい目
的プログラムを生成するために中間言語に対して各種の
最適化を施し、中間言語の変更を行う。ここで行われる
最適化は、本処理部9.10において解析される制御フ
ロー、データフロー情。
報に基づいて行われる。記憶域割付は部5では中間言語
内に出現する各種データに対して記憶域内番地を割当て
る。レジスタ割付は部6は中間言語内に現われたデータ
に対してレジスタを割当てる。
内に出現する各種データに対して記憶域内番地を割当て
る。レジスタ割付は部6は中間言語内に現われたデータ
に対してレジスタを割当てる。
目的プログラム出力部7は機械命令語を生成し、命令語
レベルで!!に適化を行った後に記憶装置に出力する。
レベルで!!に適化を行った後に記憶装置に出力する。
第1図は第2図の中間言語最適化部4において実施され
る各種最適化処理の1つである多項式のコピー伝播処理
構成図である。本図において、13は多項式のコピー伝
播処理、11はデータフロー情報ファイル、12は制御
フロー情報ファイル、14はプログラム中の代入文に対
してこれによって定義される変数の値の使用回路1位置
を調べる使用回数検査部、15は上記使用回数が1回の
みの場合にその定義点から使用点までの区間で代入文の
右辺に出現する各変数が再定義されないことと代入文の
右辺に該区間に出現する変数の値を変えるような関数呼
び出しなどがないことを確認する変数定義チェック部、
16は15で確認された変数に対してその使用点を代入
文の右辺の多項式で置きかえて代入文を削除する伝播・
削除部である。
る各種最適化処理の1つである多項式のコピー伝播処理
構成図である。本図において、13は多項式のコピー伝
播処理、11はデータフロー情報ファイル、12は制御
フロー情報ファイル、14はプログラム中の代入文に対
してこれによって定義される変数の値の使用回路1位置
を調べる使用回数検査部、15は上記使用回数が1回の
みの場合にその定義点から使用点までの区間で代入文の
右辺に出現する各変数が再定義されないことと代入文の
右辺に該区間に出現する変数の値を変えるような関数呼
び出しなどがないことを確認する変数定義チェック部、
16は15で確認された変数に対してその使用点を代入
文の右辺の多項式で置きかえて代入文を削除する伝播・
削除部である。
以上の構成に基づき、第3図の例により第1図の動作を
第4図で説明する。第3図の式(1)のような右辺が多
項式(配列要素だけの場合も含む)の代入文によって定
義される変数A1に関し、使用回数検査部14はデータ
フロー情報11を参照して該変数A1の使用点を調べる
。データフロー情報ファイル11には、中間言語内に出
現する全変数に対して定義、使用位置とその定義・使用
関係、つまりある定義に対してこの値をどこで使用して
いるかを示す関係が解析され格納されている。
第4図で説明する。第3図の式(1)のような右辺が多
項式(配列要素だけの場合も含む)の代入文によって定
義される変数A1に関し、使用回数検査部14はデータ
フロー情報11を参照して該変数A1の使用点を調べる
。データフロー情報ファイル11には、中間言語内に出
現する全変数に対して定義、使用位置とその定義・使用
関係、つまりある定義に対してこの値をどこで使用して
いるかを示す関係が解析され格納されている。
この情報から式(1)での変数A1の定義に対する使用
が式(4)のA1の使用のみであれば、変数定義チェッ
ク部15の処理を行う。もし、使用が複数あれば式(1
)の代入文は多項式のコピー伝播対象外とし、次の代入
文(2)に対して同様の処理を行う。
が式(4)のA1の使用のみであれば、変数定義チェッ
ク部15の処理を行う。もし、使用が複数あれば式(1
)の代入文は多項式のコピー伝播対象外とし、次の代入
文(2)に対して同様の処理を行う。
変数定義チェック部15では以下の処理を行う。
まず、式(1)の右辺に出現する変数B (I) 。
C(I)、Iが式(1)から式(3)までに再定義され
ないことを確認する。これは制御フロー情報ファイル1
2に格納されている式(1)から式(3)に到るすべて
のバスについてデータフロー情報ファイル11を参照し
て、上記3変数の値をかえうるような定義が存在しない
ことを確認する。
ないことを確認する。これは制御フロー情報ファイル1
2に格納されている式(1)から式(3)に到るすべて
のバスについてデータフロー情報ファイル11を参照し
て、上記3変数の値をかえうるような定義が存在しない
ことを確認する。
ここで値をかえうるような定義というのは、該変数自身
および該変数とEQUIVALENCE宣言されている
変数への定義が存在する場合、これらの変数を引数にも
つユーザ手続き、関数呼び出しが存在する場合、これら
の変数がコモン宣言°されており、かつユーザ手続き、
関数呼び出しが存在する場合である。さらに、代入文の
右辺に関数呼び出しf (a)が存在する場合1式(
1)から式(3)までの間に間数の引数aが使用されて
いないこと、およびコモン宣言されている変数の使用が
存在しないことを確認する。こうする理由は間数呼び出
しによってこれらの変数が定義されうる可能性があるか
らである。このように変数定義チェックを行うことによ
り式(1)から式(4)までの計算結果が伝播前、後に
よって変わらないことを保証できる。もし、上述した定
義が存在するときには多項式のコピー伝播対象から外し
、伝播・削除を行わない。
および該変数とEQUIVALENCE宣言されている
変数への定義が存在する場合、これらの変数を引数にも
つユーザ手続き、関数呼び出しが存在する場合、これら
の変数がコモン宣言°されており、かつユーザ手続き、
関数呼び出しが存在する場合である。さらに、代入文の
右辺に関数呼び出しf (a)が存在する場合1式(
1)から式(3)までの間に間数の引数aが使用されて
いないこと、およびコモン宣言されている変数の使用が
存在しないことを確認する。こうする理由は間数呼び出
しによってこれらの変数が定義されうる可能性があるか
らである。このように変数定義チェックを行うことによ
り式(1)から式(4)までの計算結果が伝播前、後に
よって変わらないことを保証できる。もし、上述した定
義が存在するときには多項式のコピー伝播対象から外し
、伝播・削除を行わない。
伝播・削除部16では式(4)の使用点A1を式(1)
の右辺で置きかえた後1式(1)を削除することを行う
。その結果1式(4)は式(4′)の如く変形される。
の右辺で置きかえた後1式(1)を削除することを行う
。その結果1式(4)は式(4′)の如く変形される。
本実施例によれば1代入文によって定義さ九る変数が削
除されるためレジスタ割付けの対象が減る効果があり、
他の変数をより多くレジスタに割付けることができるよ
うになり5TORE。
除されるためレジスタ割付けの対象が減る効果があり、
他の変数をより多くレジスタに割付けることができるよ
うになり5TORE。
LOAD命令が削減されうる。本発明を適用したケース
としないケースのループ本体部のオブジェクトコードは
図3に示したように20%程度実行性能を向上させうる
。
としないケースのループ本体部のオブジェクトコードは
図3に示したように20%程度実行性能を向上させうる
。
本発明によれば、プログラム内に出現する変数を減らす
ことができるのでレジスタ割付けの対象も減少し、レジ
スタに割付けたまま演算できる場合が増えることになり
5TORE、LOAD命令の削減がはかられオブジェク
ト実行性能を向上させる効果がある。
ことができるのでレジスタ割付けの対象も減少し、レジ
スタに割付けたまま演算できる場合が増えることになり
5TORE、LOAD命令の削減がはかられオブジェク
ト実行性能を向上させる効果がある。
第2図は本発明の一実施例コンパイラ構成図。
第1図は第2図の4における本発明の一実施例構成図、
第3図は本発明の具体例動作説明図、第4図は第1図の
動作を示すフローチャート図である。 1・・・・・・ソースプログラムを格納する記憶袋は2
・・・・・・コンパイラ 3・・・・・ソース解析部 4・・・・・・中間言語最適化部 5・・・・・・記憶域割付は部 6・・・・・・レジスタ割付は部 7・・・・・・目的プログラム出力部 8・・・・・・目的プログラムを格納する記憶装置9・
・・・・制御フロー解析部 IO・・・・・データフロー解析部 11・・・・・・データフロー情報ファイル12・・・
・・・制御フロー情報ファイル】3・・・・・・多項式
のコピー伝播処理部14・・・・・・使用回数検査部 15・・・・変数定義チェック部 16・・・・・・伝播・削除部
第3図は本発明の具体例動作説明図、第4図は第1図の
動作を示すフローチャート図である。 1・・・・・・ソースプログラムを格納する記憶袋は2
・・・・・・コンパイラ 3・・・・・ソース解析部 4・・・・・・中間言語最適化部 5・・・・・・記憶域割付は部 6・・・・・・レジスタ割付は部 7・・・・・・目的プログラム出力部 8・・・・・・目的プログラムを格納する記憶装置9・
・・・・制御フロー解析部 IO・・・・・データフロー解析部 11・・・・・・データフロー情報ファイル12・・・
・・・制御フロー情報ファイル】3・・・・・・多項式
のコピー伝播処理部14・・・・・・使用回数検査部 15・・・・変数定義チェック部 16・・・・・・伝播・削除部
Claims (1)
- 【特許請求の範囲】 1、与えられたソースプログラムの文解釈を行い中間言
語に展開するソース解析部、中間言語を入力として制御
フロー、データフロー解析を行いこの情報をもとに中間
言語に対して各種の最適化を施し中間言語を変更する最
適化部、中間言語内に出現する各種データに対して記憶
域内番地を割当てる記憶域割付け部、中間言語に現われ
たデータに実際の資源を割当てるレジスタ割付け部、お
よび目的プログラム出力部を備えたコンパイラにおいて
、該最適化部は、プログラム巾に出現する右辺が多項式
である代入文によって定義される変数について、その使
用が唯一であることを調べる使用回数検査部とこの条件
が満たされたときに該使用を該代入文の右辺で置きかえ
、代入文を削除する伝播・削除部を有することを特徴と
するコンパイラ処理方式。 2、特許請求の範囲第1項のコンパイラ処理方式におい
て、該最適化部は、代入文の右辺に上記使用点までに出
現する変数の値を変更するような関数呼び出しが存在し
ないことと該使用点までに代入文の右辺に出現する変数
が再定義されないことを調べる変数定義チェック部を有
することを特徴とするコンパイラ処理方式。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61167915A JPS6325733A (ja) | 1986-07-18 | 1986-07-18 | コンパイラ処理方式 |
| US07/072,966 US4843545A (en) | 1986-07-18 | 1987-07-14 | Compile method using copy propagation of a variable |
| GB08716946A GB2193587A (en) | 1986-07-18 | 1987-07-17 | Compile method using copy propagation of a variable |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61167915A JPS6325733A (ja) | 1986-07-18 | 1986-07-18 | コンパイラ処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6325733A true JPS6325733A (ja) | 1988-02-03 |
Family
ID=15858408
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61167915A Pending JPS6325733A (ja) | 1986-07-18 | 1986-07-18 | コンパイラ処理方式 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4843545A (ja) |
| JP (1) | JPS6325733A (ja) |
| GB (1) | GB2193587A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5790867A (en) * | 1996-01-02 | 1998-08-04 | International Business Machines Corporation | Compiler with extended redundant copy elimination |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5107418A (en) * | 1990-06-11 | 1992-04-21 | Supercomputer Systems Limited Partnership | Method for representing scalar data dependences for an optimizing compiler |
| US6493739B1 (en) | 1993-08-24 | 2002-12-10 | Echelon Corporation | Task scheduling in an event driven environment |
| EP0576546A4 (en) * | 1991-03-18 | 1995-01-25 | Echelon Corp | NETWORK VARIABLES. |
| EP1186970A1 (en) * | 1991-03-18 | 2002-03-13 | Echelon Corporation | Programming language structures for use in a network for communicating, sensing and controlling information |
| US5301100A (en) * | 1991-04-29 | 1994-04-05 | Wagner Ferdinand H | Method of and apparatus for constructing a control system and control system created thereby |
| JPH04343140A (ja) * | 1991-05-21 | 1992-11-30 | Hitachi Ltd | コンパイラの最適化処理方法 |
| US5515535A (en) * | 1991-11-05 | 1996-05-07 | Thinking Machines Corporation | System and method for parallel variable optimization |
| US5319784A (en) * | 1991-12-18 | 1994-06-07 | International Business Machines Corp. | System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure |
| US5500852A (en) * | 1994-08-31 | 1996-03-19 | Echelon Corporation | Method and apparatus for network variable aliasing |
| US5802375A (en) * | 1994-11-23 | 1998-09-01 | Cray Research, Inc. | Outer loop vectorization |
| US5790866A (en) * | 1995-02-13 | 1998-08-04 | Kuck And Associates, Inc. | Method of analyzing definitions and uses in programs with pointers and aggregates in an optimizing compiler |
| US5826089A (en) * | 1996-01-04 | 1998-10-20 | Advanced Micro Devices, Inc. | Instruction translation unit configured to translate from a first instruction set to a second instruction set |
| US5937196A (en) * | 1997-09-19 | 1999-08-10 | International Business Machines Corporation | Compiling with partial copy propagation |
| US6370685B1 (en) * | 1999-01-06 | 2002-04-09 | Intel Corporation | Data-flow method of analyzing definitions and uses of L values in programs |
| US6523168B1 (en) * | 1999-07-01 | 2003-02-18 | International Business Machines Corporation | Reduction of object creation during string concatenation and like operations that utilize temporary data storage |
| US6567975B1 (en) * | 1999-11-08 | 2003-05-20 | Sun Microsystems, Inc. | Method and apparatus for inserting data prefetch operations using data flow analysis |
| JP3919680B2 (ja) * | 2003-02-26 | 2007-05-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ装置、コンパイラプログラム、及び記録媒体 |
| KR100503386B1 (ko) * | 2003-03-14 | 2005-07-26 | 주식회사 안철수연구소 | 제어흐름과 자료흐름을 고려한 악성 행위 패턴 감지 방법 |
| CN121209967B (zh) * | 2025-11-28 | 2026-02-13 | 上海壁仞科技股份有限公司 | Gpu指令的复制传播方法、设备、存储介质和程序产品 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS4847737A (ja) * | 1971-10-12 | 1973-07-06 | ||
| JPS60204038A (ja) * | 1984-03-28 | 1985-10-15 | Hitachi Ltd | プログラム間における変数の有効範囲変更制御方式 |
| US4642764A (en) * | 1984-08-13 | 1987-02-10 | International Business Machines Corporation | Method of developing formal identities and program bases in an optimizing compiler |
| US4656583A (en) * | 1984-08-13 | 1987-04-07 | International Business Machines Corporation | Method for improving global common subexpression elimination and code motion in an optimizing compiler |
-
1986
- 1986-07-18 JP JP61167915A patent/JPS6325733A/ja active Pending
-
1987
- 1987-07-14 US US07/072,966 patent/US4843545A/en not_active Expired - Lifetime
- 1987-07-17 GB GB08716946A patent/GB2193587A/en not_active Withdrawn
Non-Patent Citations (1)
| Title |
|---|
| IBM JOURNAL OF RESEARCH AND DEVELOPEMENT=1980 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5790867A (en) * | 1996-01-02 | 1998-08-04 | International Business Machines Corporation | Compiler with extended redundant copy elimination |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2193587A (en) | 1988-02-10 |
| GB8716946D0 (en) | 1987-08-26 |
| US4843545A (en) | 1989-06-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6325733A (ja) | コンパイラ処理方式 | |
| US6173444B1 (en) | Optimizing compilation of pointer variables in the presence of indirect function calls | |
| JP3311462B2 (ja) | コンパイル処理装置 | |
| US5768596A (en) | System and method to efficiently represent aliases and indirect memory operations in static single assignment form during compilation | |
| US6973644B2 (en) | Program interpreter | |
| US5999739A (en) | Method and apparatus for elimination of redundant branch instructions from a program | |
| JPH04330527A (ja) | プログラムの最適化方法及びコンパイラ・システム | |
| US20030101380A1 (en) | Method and system for rewriting unwind data in the presence of exceptions | |
| Wichmann et al. | ALGOL 60 compilation and assessment | |
| JPS61241837A (ja) | 範囲検査の最適化方法 | |
| JPH04266125A (ja) | ディジタルコンピュータの操作方法 | |
| JP3539613B2 (ja) | ループ飛び出し文を含むループに対する配列サマリ解析方法 | |
| US6625806B1 (en) | Language processing method and language processing system improving use efficiency of cache memory | |
| JPH01118931A (ja) | プログラム変換方式 | |
| JP2002297399A (ja) | 静的単一代入を行うためのφ関数を与える方法 | |
| Thiemann | What I Always Wanted to Know about Second Class Values | |
| Saito et al. | Controlling Computation Granularity through Fusion in Improving Floating-Point Numbers | |
| JPH02236638A (ja) | レジスタ割付け管理方式 | |
| JP3580394B2 (ja) | プログラム変換装置及びプログラム変換方法 | |
| JPH0281137A (ja) | 最適化コンパイラ及びコンパイル方法 | |
| JP3018783B2 (ja) | コンパイル方式 | |
| Chevalier-Boisvert et al. | Removing Dynamic Type Tests with Context-Driven Basic Block Versioning | |
| JP2527055B2 (ja) | タスク内共有変数検出処理方式 | |
| JP3004340B2 (ja) | プログラム最適化装置 | |
| JPS63131231A (ja) | 不要な再帰演算命令削除方式 |