JPH03127127A - コンピュータプログラムの最適化方法 - Google Patents

コンピュータプログラムの最適化方法

Info

Publication number
JPH03127127A
JPH03127127A JP24018390A JP24018390A JPH03127127A JP H03127127 A JPH03127127 A JP H03127127A JP 24018390 A JP24018390 A JP 24018390A JP 24018390 A JP24018390 A JP 24018390A JP H03127127 A JPH03127127 A JP H03127127A
Authority
JP
Japan
Prior art keywords
instruction
loop
conditional branch
branch instruction
conditional
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
Application number
JP24018390A
Other languages
English (en)
Other versions
JPH0612525B2 (ja
Inventor
John K P O'brien
ジョン・ケビンパトリック・オブライエン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH03127127A publication Critical patent/JPH03127127A/ja
Publication of JPH0612525B2 publication Critical patent/JPH0612525B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F8/44Encoding
    • G06F8/443Optimisation

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

【発明の詳細な説明】 A、産業上の利用分野 この発明はコンピュータプログラムのコンパイルに係り
、より具体的には、コンピュータプログラムの最適化に
関するものである。特に、コンピュータプログラムの命
令ループからの不変分岐の除去方法を提案する。
B、従来技術及びその課題 ]ンピュータプログラムを高水準言語(Fortran
、 pascal、 C)で書いた後、このプログラム
を、コンピュータで実行される一連の機械語命令に変換
するために、通常は、コンパイラプログラムを使用して
いる。これらの機械語命令は目的コードとも呼ばれる。
高水準言語で書かれたプログラムを目的コードで表現す
るには種々の方法がある。
特に、高水準言語プログラムの目的コード翻訳方法のう
ち、幾つかのものは、他のものより高速で動作する。そ
のために、コンパイルシステムは、コード最適化と呼ば
れる手続きを行うように構成されていることが多い。コ
ード最適化とは、プログラムをより少ない時間で実行で
きるように目的コードを改良する技術である。
コード最適化は多くの方法で達成できる。反復計算は削
除することができる。変化する事のない変数は、定数に
置き換えることができる。ループ反復の如何にかかわら
ず、常に同一に評価されるループ内の表現はループの外
へ移動させることができる。
コード最適化の分野において特に関心のもたれる分野は
、プログラムループ、すなわ−ちプログラム中の反復部
分の動作時間を短縮することである。コンピュータプロ
グラムは比較的多くの時間をループ内の命令の実行に費
やしているので、ループの実行時間を短縮できるコード
最適化方法があれば、コンピュータプログラム全体の実
行時間の改善に極めて有効である。
ループ実行を改善するための共通の方法は、ループを回
っている間は、常に同一結果を生じさせる計算を、ルー
プの実行直前のコンピュータプログラム内の成る点に再
配置することである。このようにすれば、ループに入っ
た時に一度だけ計算を行えば良く、ループの反復の度に
行う必要はない。この様な計算がループ不変と呼ばれる
米国特許第4.567.574号(Saade他)はP
ERFORMステートメントを含むC0BOLソースプ
ログラムを最適化するための方法に関するもので、手続
き用コードまたは簡略化リンケージコードをPERFO
RMステートメントに代えて用いている。
米国特許第4,656.582号(chaitin他)
は「コードモーション」及び「共通部分表現除去」、を
利用する最適化方法に関するもので、メモリ内の値また
はテンポラリレジスタの値を利用しうる命令のために、
その最適化方法によって、命令が属する文脈にとって最
善の命令形態を選択するようにしている。
米国特許第4.773.007号(Kasada他)は
アレイエメントの相互依存をプログラムコード最適化に
先立つものとして決定するための、データフロー分析方
法に関するものである。
C0発明の概要及び解決課題 この発明は、ループ不変の条件付分岐命令を含むコンピ
ュータプログラムを最適化する事によって作用する。−
旦、最適化されれば、コンピュータプログラムは、それ
が最適化される前よりも短時間で実行される。
この発明では、命令が入っているコンピュータプログラ
ムからループ不変の条件付分岐命令を除去する方法につ
いて述べられている。
この発明の作用は下記の一連のステップでなされる。第
1に、プログラムの各ループが調べられ。内側ループを
その外側ループの前に、ループ不変である条件付分岐命
令を位置決めするために検査される。条件がループ不変
計算のみから成る各条件付分岐は、この分岐が不変であ
る最も外側のループの外側に書換えられる。この移動さ
れた分岐は、その条件が第1の所定の論理的な値と評価
される場合、それを初めに含んでいたループの周囲の分
岐に変更される。不変分岐が無条件分岐として書き換え
られるループの新たなコピーが作成される。この分岐と
コピーされたループ内の他の全ての分岐はコピーされた
ループの先頭に関連して変更される。ループのオリジナ
ルコピー中、不変分岐が削除され、オリジナルコピーが
実行されたとき、新たなコピーを飛び越すために、別の
分岐が変更されたオリジナルループの後に挿入される。
最後に選択的ステップとして、上述の変換の結果として
実行されることのないプログラムの部分が削除される。
D、実施例 後述のこの発明の説明に用いられる用語について次に定
義する。
強連結領域(SCR−Strongly Connec
tedRegion) 有向グラフであって、グラフ中の2つの点(A)、(B
)ごとに、(A)から(B)へのパスと(B)から(A
)へのパスとがあるものを言う。第1図は、強連結グラ
フを示す。このグラフは、グラフ中の各点から他の各点
へのパスがあるので、強く連結されている。第2図は強
連結されていないグラフの例である。このグラフは、例
えば、点dから点aへのパスが無いので、強連結されて
いない。
強連結領域外に先行部を有する点が一つだけある強連結
領域を言う。単エントリー強連結領域はループの共通プ
ログラミング概念に相当する。第3図は単エントリー強
連結領域を含むグラフの例である。このグラフは、点e
から強連結サブグラフa、  g、  c、  dへの
唯一のパスが点aを通っているので5ESCRを示して
いる。第4図は単エントリー強連結でないグラフの例で
ある。このグラフは、強連結領域外に先行部をもつ分岐
点が2つあるから(即ち、点fは点すの先行部であり、
分岐点eは点aの先行部である’) 、5ESCRは示
していない。
領域定数(RCRegion Con5tant)SE
SCRに関して、5ESCRで計算されない値を言う。
第3図で、点eは領域定数を示している。
関節点(AN−Articulation Node)
サブグラフの各探索ごとに立ち寄るべきサブグラフの点
を言う。第1図では、点aとdとが関節点である。
述語(Predicate) 条件付命令の行動を決定する数学的関係を言う。
条件コード(condition Code)ある値が
、負、ゼロ、正のいずれであるかの表示である。
コンピュータプログラムの最適化過程では、条件付分岐
命令を、これを始めに含んでいたループ外の点に再配置
することが望ましい。これは例えば、条件付分岐命令が
ループ不変性を示しているとき、すなわち、ループの反
復にかかわらずそれが同一の評価を受けるときに生じる
。この様なループ実行直前の点へのステートメントの再
配置は、反復性を有し、不要な評価を低減する。例えば
、高性能な分岐予測ハードウェアを持たないパイプライ
ンコンピュータシステムでは、条件付分岐命令がプロセ
ッサの実用性を大いに減殺する。
従って、プログラムの実行中に遭遇する条件付分岐命令
の数を減少させることにより、プログラム実行時間に対
する主要な改善方向のインパクトを達成することができ
る。
後述するこの発明の実施例では、不変な条件付分岐命令
を有する1つのループが2つのループに変換される。第
1のループはオリジナルループであり、第2のループは
このオリジナルループの正確なコピーである。しかし、
第2のループでの分岐の分岐先は、第2のループの先頭
に関連して修正される。第1のループでは、条件付分岐
命令が削除され、その位置には何も入れない。第2のル
ープでは、条件付分岐命令が無条件分岐命令に置き換え
られる。元の条件付分岐命令の条件はいずれかのループ
にエントリーされる前に評価してもよい。この条件が偽
であると評価された場合は、第1の新たに作成されたル
ープが実行される。そうでない場合は、第2の新たに作
成されたループが実行される。このように、条件は、ル
ープの反復ごとに評価する方法とは異なり、−度だけ評
価される。この方法は、非スイッチングと称される。
この発明の動作を第5図に示す。最適化のためのコンピ
ュータプログラム分析を行う前に、プログラムをフロー
グラフとして表すことが望ましい(ステップ100)。
この発明の一実施例は、このタスク行うためにTarj
anアルゴリズムを用いているが、どのフローグラフ構
築方法でも採用できる。TarjanアルゴリズムはS
IAM J、 Computingl:2の第146−
160頁に掲載されたrDepth first 5e
arch and 1inear graph alg
orithms (深さ優先探索と線形グラフアルゴリ
ズム)」と題するR、 E、 Tarjanの論文に記
載されている。
フローグラフをいったん作成してしまえば、プログラム
中の最適化の目的とされるループを識別することができ
る。これは、フローグラフの5ESCRを位置決めする
ことにより(ステップ200)、達成される。この発明
の実施例では、上記Tarjanの論文に述べられたア
ルゴリズムを用いることにより、5ESCRが識別して
いるが、他のいかなる5ESCR識別アルゴリズムでも
利用できる。
ステップ300では、5ESCR中の各計算値が、それ
が属するループに関して計算が不変であるかどうかを決
定するために評価される。この特性を有する計算には、
その意味のマークが付される。
計算は、もしそれがプログラムの有向グラフ表現内の領
域定数として特徴付けられれば、不変である。
領域定数の識別方法は公知である。この発明の実施例は
、下記アルゴリズムを用いている。第1のステップでは
、ここで、参考としてとりいれたAddison We
sley 1979号第454−471頁に記載された
A、 Aho他によるrPrinciplesof C
omplier Design (コンパイラ設計の原
理)」第13章に記載された不変なコードの移動を行う
。次に、フローグラフ各5ESCRごとに、プログラム
によって計算されたすべての結果を検討中の領域用ワー
キングセットに挿入する。そして、その領域内の各基本
ブロック(フローグラフの点)が検索し、そのブロック
で行われた各計算を作業セットから除去する。その領域
のすべてのブロックを検査したら、そのワーキングセッ
トに残った計算が領域定数である。
領域定数を識別した後、この最適化過程の次のステップ
は、不変な述語に依存する分岐が決定される。各領域の
点の数が決定される(ステップ400)。第5図A及び
第5図Bのフローチャートは簡略化のため、一つの5E
SCRについて実行される動作のみを示しているが、こ
の発明の典型的な実施例は、有向の最も内側の5ESC
Rから外側に向かって、全5ESCRが検討されるもの
である。5IESCR内の各点を検討するに当たり(ス
テップ500)、単一点領域は内側分岐を持たないから
無視しても良い。ラッチ点(ループヘッダの先行部に位
置するループ中の点)も無視しても良い。
どの分岐が不変性であるかを決定するには、少なくとも
2つの方法がある。ここで用いる方法は、条件コード値
が他のコード最適化処理によってコンピュータプログラ
ム内に前もって移動されていたかどうかに依存している
(ステップ6゜0)。
最適化処理によって条件コード計算をループ外に移動さ
せた場合、領域定数であるかどうかを決定するために、
分岐の条件部が検討される(ステップ800)。もしそ
の分岐(ブランチ)の条件部が領域定数(RC)である
ならば、条件付分岐命令はそれが属するループに関して
不変である(頁接続記号Aを介してステップ900)。
そうでない場合は、その点が無視され、次の点が評価さ
れる(ステップ81O)。
条件コード計算が移動されてなかった場合は、分岐の条
件オペランドを計算する各命令への各入力値が検討され
る(ステップ850)。もし各入力値が分析中のループ
に関して不変であれば、この条件部はこのループに対し
て不変である(頁接続記号Aを介してステップ900)
そうでない場合は、そのループの次の点が検討される(
ステップ860)。ある分岐命令が、これが属するルー
プに関して不変であれば、その位置が記録され(ステッ
プ920)、不変性が成り立つ最も外側のループを決定
するためのサーチが行われる(ステップ940)。これ
は、ステップ920で記録されたものに隣接する点に領
域定数アルゴリズム(上述しである)を適用することに
よって行われる(頁接続記号Aを介してステップ105
0)。このようにして、その分岐が、それが不変である
ループ外の点に移動され、もって、上述したようにプロ
グラム実行時間を短縮する。
この最外端ループの位置は記録される(ステップ100
0)。
この発明、の一実施例では、コンピュータプログラムの
命令ループの関節点である場合にのみその点が評価され
る。しかし、この制限は省いても良いと考えられる。関
節点を見出すためのアルゴリズムはグラフ論の分野では
公知である。
最適化用のループが識別された後、最適化を達成するた
めに、コンピュータプログラムを書き換えてもよい。各
ループはその識別の順序と反対の順序で処理される。
ステップ1100では、最適化を要すると識別されたル
ープがコピーされ、そのループの二つのコピーが生じる
。不変な条件分岐が虚偽であると評価された場合、この
ループの第1のコピーが実行される。この不変な条件分
岐が真実であると評価された場合は、上記ループの第2
コピーが実行される。第2コピーの作成に当たり、その
コピー内の分岐の分岐先がこのループの先頭に関連して
修正される。
ステップ1200では、条件付分岐命令がプログラム中
のループのオリジナルコピーの前に挿入される。この条
件付分岐命令の分岐先は、ループの第2コピーのスター
トアドレスとなるように修正される(ステップ1300
)。
ステップ1400では、複製のループの第1コピー内に
配置された条件付分岐命令が除去され、その箇所には何
も挿入されない。
ステップ1500では、複製のループのうちの第1、第
2コピー間に無条件分岐命令が挿入される。この分岐の
分岐先は、複製のループの第2コピーの直後の命令であ
る。このようにして、第1ループの実行の完了時に、プ
ログラム実行が第2ループを飛び越して、非修正プログ
ラム中のオリジナルループに続く命令に移動する。
ステップ1600では、ループの第2コピーに位置する
条件付分岐命令が無条件分岐に置き換えられる。この分
岐の分岐先は、元の条件付分岐命令の目標である。
最後にステップ1700で、最適化の結果、適正なプロ
グラム動作に不要となったコード(到達できないコード
)が削除される。この目的を達成するためには種々の適
宜のアルゴリズムを使用できるが、その一つがここで参
考としたところのAddison Wesley 19
79.第549−550頁に掲載された、A、 Aho
他によるrPrinciples of Compil
er Design  (コンパイラ設計の原理)」の
第15章に記載されている。
以下に第5図A及び第5図Bに関連して上述のアルゴリ
ズムの動作を示す。
50 00 50 00 00 00 99 BRANCH0N BRANCHTO ABEL ABIEL END LOOP STATEMENT TOP CONDITION TO250 00 0 00 50 00 50 00 00 40 50 BRANCHON C0NDITIONSTART L
OOP (ネBRANCHDELETED*) BRANCHTo 300 ABEL ABEL END LOOP BRANCH700 START LOOP T。
50 50 00 50 80 LA兜L END LOOP 八に示したプログラム例が第6図Aにグラフとして示さ
れている。このプログラムは、自身が属するループに対
して不変である分岐命令を含んでいる。
A中の第100−400行に示したループは複製されて
B中の第100−400行及び第450−680行に現
れることがわかる。ループの複製に当たっては、複製ル
ープ内の分岐の分岐先がこのループの先頭に関連して修
正される。B中の第50行で、条件付分岐命令がコンピ
ュータプログラム中でいずれかのループのコードの前に
置かれる。B中の第150行で、条件付分岐命令が削除
され、第500行で、前のAの分岐命令がそのループの
第2コピー内の無条件分岐に置き換えられる。この分岐
の分岐先は、これが属するループの先頭に関連して同一
である。
Dは、到達できないコードが除去された後の最適化され
たプログラムを例示している。このDのプログラムは、
グラフ的には、第6図Bに示される。第250行の命令
は、第200行の命令がこれを飛び越すので、到達でき
ないとされる。同様に、第600行の命令は、第550
行の命令がこれを飛び越すので、到達できないとされる
この発明は、例示的実施例をもって説明したが、特許請
求の範囲に照らして適宜変更可能であることは言うまで
もない。
E0発明の効果 上述の如く、この発明によればループ不変の条件付分岐
命令の除去によって効率のよいプログラムの実行を達成
する。
【図面の簡単な説明】
第1図、第2図、第3図及び第4図はこの発明の動作説
明のためのグラフを示す図、第5図A及び第5図Bはこ
の発明の一実施例の動作説明に用いるフローチャート、
第6図A及び第6図Bはコンビユニタブログラムの一例
を表すグラフを示す図である。

Claims (12)

    【特許請求の範囲】
  1. (1)少なくとも1個の命令ループを含むコンピュータ
    プログラムであって、命令ループが条件部と分岐部とを
    有する第1の条件付分岐命令を有し、上記条件部が上記
    命令ループに関して不変であることを内容とするコンピ
    ュータプログラムの実行時間を短縮するための、下記ス
    テップから成る方法 (a)上記第1の条件付分岐命令を識別し、 (b)上記第1の条件付分岐命令を、命令ループの直前
    のコンピュータプログラム内の位置に複写して、条件付
    分岐命令の第2のコピーを生成し、 (c)命令ループを複写して、条件付分岐命令の第3の
    コピーを含む命令ループのコピーを生成し、命令ループ
    の後のコンピュータプログラム内位置に命令ループのコ
    ピーを挿入し、 (d)条件付分岐命令の第2のコピーの分岐部を修正し
    て、命令ループのコピーに向けて分岐させ、 (e)命令ループのコピー部に分岐させるため、条件付
    分岐命令を命令ループのコピーの前のコンピュータプロ
    グラム内位置に挿入し、 (f)第1条件付分岐命令を削除する。
  2. (2)第3の条件付分岐命令を無条件分岐命令に変更す
    るステップを更に含んでなる、請求項(1)記載の方法
  3. (3)上記ステップ(a)が、命令ループに関して不変
    である計算を命令ループから除去するステップの前に置
    かれる、請求項(1)記載の方法。
  4. (4)上記命令ループが1又は2以上の外側ループ内に
    含まれ、上記ステップ(b)が、第1の条件付分岐命令
    の条件部が不変である最も外側のループの直前のコンピ
    ュータプログラム内位置に、第1の条件付分岐命令を複
    写するステップを含んでなる、請求項(1)記載の方法
  5. (5)ステップ(a)ないし(f)が、命令ループに対
    して不変である条件部を有する命令ループ内の各条件付
    分岐命令毎に反復される、請求項(1)記載の方法。
  6. (6)コンピュータプログラムが複数の命令ループから
    成り、ステップ(a)が、 (a1)上記第1条件付分岐命令の識別のため、上記命
    令ループ中の一つを選択し、 (a2)上記第1の条件付分岐命令が選択された命令ル
    ープ内に識別されないときに、別の命令ループを評価す
    る各ステップからなる、請求項(1)記載の方法。
  7. (7)コンピュータプログラム中の不要部分を削除する
    ステップを更に含んで成る、請求項(1)記載の方法。
  8. (8)ステップ(a)が、 (a1)コンピュータプログラムをフローグラフとして
    表現し、 (a2)このフローグラフを評価して、上記第1の条件
    付分岐命令が命令ループに関して不変であることを識別
    する各ステップからなる、請求項(1)記載の方法。
  9. (9)ステップ(a1)が、 (a3)命令ループ用領域定数を識別し、 (a4)識別された領域定数の少なくとも一つによって
    上記第1条件付分岐命令が制御されたことを識別する各
    ステップから成る、請求項(8)記載の方法。
  10. (10)上記第1条件付分岐命令が、フローグラフによ
    って強連結領域の関節点として表現されたときにのみ識
    別される、請求項(8)記載の方法。
  11. (11)少なくとも1個の命令ループを含むコンピュー
    タプログラムであって、命令ループが条件部と分岐部と
    を有する少なくとも1個の条件付分岐命令を有し、上記
    命令ループが入力値を含む一組の計算を含み、この計算
    の組が条件付分岐の条件部に影響を与える事を内容とす
    るコンピュータプログラムの実行時間を短縮するための
    、下記ステップからなる方法: (a)上記命令ループ中の第1の条件付分岐命令を識別
    し、 (b)計算の組への入力値を検査して、上記条件付分岐
    命令の条件部が命令ループに関して不変であるかを決定
    し、 (c)命令ループに関して不変である条件付分岐命令が
    見つかるまでステップ(b)を反復し、 (d)上記不変条件付分岐命令を命令ループの直前のコ
    ンピュータプログラム内位置に複写して不変な条件付分
    岐命令の第1コピーを生成し、 (e)命令ループを複写して、不変な条件付分岐命令の
    第2コピーを含むループのコピーを生成し、命令ループ
    の後のコンピュータプログラム内位置にループのコピー
    を挿入し、(f)条件付分岐命令の第1コピーの分岐部
    分をループのコピーに分岐させるように修正し、 (g)命令ループのコピー部を分岐させるため、無条件
    分岐命令を命令ループのコピーの前のコンピュータプロ
    グラム内位置に挿入し、 (h)不変な条件付分岐命令を削除する。
  12. (12)条件付分岐命令の第2コピーを無条件分岐命令
    に変更するステップを更に含んで成る、請求項(11)
    記載の方法。
JP2240183A 1989-10-12 1990-09-12 コンピュータプログラムの最適化方法 Expired - Lifetime JPH0612525B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42078989A 1989-10-12 1989-10-12
US420789 1989-10-12

Publications (2)

Publication Number Publication Date
JPH03127127A true JPH03127127A (ja) 1991-05-30
JPH0612525B2 JPH0612525B2 (ja) 1994-02-16

Family

ID=23667850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2240183A Expired - Lifetime JPH0612525B2 (ja) 1989-10-12 1990-09-12 コンピュータプログラムの最適化方法

Country Status (2)

Country Link
EP (1) EP0422398A3 (ja)
JP (1) JPH0612525B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265606A (ja) * 2000-01-13 2001-09-28 Fujitsu Ltd 情報処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1305473A (zh) 1998-04-16 2001-07-25 得克萨斯生物技术公司 抑制整联蛋白与其受体结合的n,n-二取代的酰胺

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62202235A (ja) * 1986-03-03 1987-09-05 Hitachi Ltd コンパイラにおけるル−プ展開方式
JPS6365532A (ja) * 1986-09-05 1988-03-24 Fujitsu Ltd 共通アセンブラ命令列の削除方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62202235A (ja) * 1986-03-03 1987-09-05 Hitachi Ltd コンパイラにおけるル−プ展開方式
JPS6365532A (ja) * 1986-09-05 1988-03-24 Fujitsu Ltd 共通アセンブラ命令列の削除方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265606A (ja) * 2000-01-13 2001-09-28 Fujitsu Ltd 情報処理装置
JP4579425B2 (ja) * 2000-01-13 2010-11-10 富士通株式会社 情報処理装置

Also Published As

Publication number Publication date
JPH0612525B2 (ja) 1994-02-16
EP0422398A3 (en) 1992-07-08
EP0422398A2 (en) 1991-04-17

Similar Documents

Publication Publication Date Title
US5202995A (en) Method for removing invariant branches from instruction loops of a computer program
US5966539A (en) Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis
EP0533813B1 (en) Method for representing scalar data dependencies for an optimizing compiler
US6286135B1 (en) Cost-sensitive SSA-based strength reduction algorithm for a machine with predication support and segmented addresses
Pollock et al. An incremental version of iterative data flow analysis
US4710872A (en) Method for vectorizing and executing on an SIMD machine outer loops in the presence of recurrent inner loops
US5355494A (en) Compiler for performing incremental live variable analysis for data-parallel programs
EP0273130B1 (en) Reassociation process for code optimization
EP0461786A2 (en) Methods and apparatus for transforming machine language program constructs into high-level language constructs by manipulating graphical program representations
JP4181326B2 (ja) コード最適化のための方法、装置及びプログラム
JPH0695311B2 (ja) コード最適化方法
JPH0814817B2 (ja) 自動ベクトル化方法
JPH0552971B2 (ja)
JPH01121938A (ja) オブジェクト生成方法
US5790859A (en) Method of, system for, and computer program product for efficient identification of private variables in program loops by an optimizing compiler
EP0199006B1 (en) A data processing system for optimising a machine code instruction stream
US6009273A (en) Method for conversion of a variable argument routine to a fixed argument routine
Lomet Data flow analysis in the presence of procedure calls
JP3539613B2 (ja) ループ飛び出し文を含むループに対する配列サマリ解析方法
US20010044930A1 (en) Loop optimization method and a compiler
US6571386B1 (en) Apparatus and method for program optimizing
JPH03127127A (ja) コンピュータプログラムの最適化方法
Song et al. A technique for variable dependence driven loop peeling
JPH0522272B2 (ja)
Mohd-Saman et al. Inter-procedural analysis for parallel computing