JPH0685148B2 - 配列デ−タフロ−解析装置 - Google Patents

配列デ−タフロ−解析装置

Info

Publication number
JPH0685148B2
JPH0685148B2 JP61048309A JP4830986A JPH0685148B2 JP H0685148 B2 JPH0685148 B2 JP H0685148B2 JP 61048309 A JP61048309 A JP 61048309A JP 4830986 A JP4830986 A JP 4830986A JP H0685148 B2 JPH0685148 B2 JP H0685148B2
Authority
JP
Japan
Prior art keywords
loop
dependency
data flow
data
analysis
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 - Fee Related
Application number
JP61048309A
Other languages
English (en)
Other versions
JPS62206637A (ja
Inventor
泰 金田
和久 石田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61048309A priority Critical patent/JPH0685148B2/ja
Priority to GB08703650A priority patent/GB2191315A/en
Priority to US07/015,018 priority patent/US4773007A/en
Publication of JPS62206637A publication Critical patent/JPS62206637A/ja
Publication of JPH0685148B2 publication Critical patent/JPH0685148B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

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)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、電子計算機用言語のコンパイラにおける最
適化に必要な情報を提供する配列データフロー解析装置
に関する。
〔従来の技術〕
コンパイラにおけるプログラムの翻訳過程は第2図のよ
うにあらわせる。すなわち、原子プログラム201を語彙
・構文解析202によって中間語プログラム13に変換した
のち、目的プログラムの性能向上のためにそれに最適化
204をほどこして中間語プログラム205をえる。コード生
成206によってそれを計算機で実行可能な目的プログラ
ム207に変換する。
最適化204はおよそ第3図のようにおこなわれる。すな
わち、中間語プログラム203におけるデータのながれを
解析し(301)、その結果として出力されるデータフロ
ー情報105にもとづいて、よりよい中間語プヲグラム205
に変換する(302)。データフロー情報105とは、プログ
ラムのどの点における変数の定義値がどの点で使用され
ているか、などの変数参照どうしの関係をあつめた情報
である。このような関数をデータ依存関係とよぶ。
単純変数すなわち構造をもたない変数のデータフロー解
析法としてはすでに強力な方法が確立されていて、たと
えばつぎの文献でのべられている。エイホ,ウルマン:
プリンシプルズ・オブ・コンパイラ・デザイン,アディ
ソン・ウェズレイ社(1977年),第478頁から第480頁
(Aho,Ullman:Principles of Compiler Design,Addison
−Wesley(1977),pp.478−480。)しかし、配列に関し
ては充分に強力なデータフロー解析法は発明されていな
い。内側に逐次実行以外の制御構造がない最内側ループ
については、ループのくりかえしにつれて線形に変化す
る(または一定の)添字をもつ配列を解析する方法があ
たえられている。そのような方法は、たとえばつぎの文
献においてのべられている。サード・ユー・エス・エイ
・ジャパン・コンピュータ・コンファレンス,第273頁
から第279頁(1978年)(3rd USA−Japan Computer Con
ference,pp.273−279(1978))。
〔発明が解決しようとする問題点〕
上記のように、従来の配列データフロー解析法において
は、内側に逐次実行以外の制御構造すなわち条件構造や
くりかえし構造(ループ)をふくむループをあつかうこ
とができないか、または、あつかえるとしても不正確な
データフローしかもとめることができないという問題が
あった。
例として第4図(a)のプログラムを使用する。この図
における変数Vの使用uと定義dとはループの1回のく
りかえしのなかでともに実行されることはないため、両
者のあいだにデータ依存関係は存在しない。ところが従
来の解析法ではこのプログラムを第3図(b)のような
プログラムで近似して解析する。このプログラムにおい
てはuからdのデータ依存関係が存在するため、第3図
(a)のプログラムの解析結果のうえでもそのデータ依
存関係が存在するとされてしまう。したがってデータフ
ローは不正確になり、最適化の可能性がせばめられる。
この発明の目的は、このような場合に従来より正確なデ
ータフローをもとめることによって、より強力な最適化
を可能にし、その結果としてより高性能の目的プログラ
ムをえることにある。
〔問題点を解決するための手段〕
上記の目的は第1図および第5図のような手段をもちい
ることによって解決される。すなわち、まず制御フロー
解析101をおこなって制御フロー情報102すなわちプログ
ラムの制御構造をあらわす情報をもとめる。そして、そ
の情報をつかって配列データフロー解析をおこなう。配
列データフロー解析は、配列データフロー解析制御部10
3でプログラムがふくむ各ループをとりだし、ループご
とにループ・データフロー解析部104にわたして、その
内部を解析する。解析結果はデータフロー情報105とし
て出力され、これが全体の出力となる。
ループ・データフロー解析部104は第5図のように構成
される。まずループ独立依存解析部501によって該ルー
プ内の全文を走査し、ループ独立依存解析結果502をも
とめる。これは、データフロー情報の一部となるべきデ
ータである。
ループ独立依存解析結果502は、ループの1回のくりか
えしのなかで生じるデータ依存関係である。つぎに、ル
ープ2回の依存解析部503によって該ループ内の全文を
ふたたび走査し、ループ2回依存解析結果504をもとめ
る、これもデータフロー情報の一部となるべきデータで
ある。ループ2回依存結果504は、ループのあるくりか
えしにおける配列参照の実行と、直後のくりかえしにお
ける他の配列参照の実行とのあいだで生じるデータ依存
関係である。以下同様にループ3回依存解析,ループ4
回依存解析などをおこなうことができる。このようにく
りかえし解析をおこなうことによってより正確なデータ
フロー情報をもとめることができるが、そのかわりにル
ープ独立依存解析だけをおこなうこともできる。
以上の解析のあとにループ多回依存解析部505によって
該ループ内の全文をふたたび走査し、ループ多回依存解
析結果506をもとめる。これもデータフロー情報の一部
となるべきデータである。ループ多回依存解析結果506
は、これ以前の解析(501,503,…)においてもとめられ
なかった、ループのあるくりかえしにおける配列参照の
実行と、それからn回あとのくりかえしにおける他の配
列参照の実行とのあいだで生じるデータフロー関係であ
る。ここでnは、ループ他回依存解析のまえにループ独
立依存解析501だけをおこなうときには1以上、ループ
独立依存解析501とループ2回依存解析503だけをおこな
うときには2以上などとする。
データフロー合成部507においてはループ独立依存解析
結果502,ループ2回依存解析結果504,ループ多回依存解
析結果506などを合成して、データフロー情報を105をも
とめる。
この図を構成する各部分のうち、501,503および505は、
前掲エイホ・ウルマンの著書における変数データフロー
解析法にもとづいている。
〔作用〕
第5図の501,503,505の各部分は、エイホ・ウルマンの
変数データフロー解析と同様に制御構造にそった解析を
している。ただし、この場合は該ループ内部の制御構造
だけを考慮している。そして、ループ全体501,503,…,5
05とくりかえし解析するというようにして、ループにそ
った解析をしている。これらによって、条件構造やくり
かえし構造をデータフローに反映することができ、正確
なデータフロー情報もとめることができる。
第4図(a)のプログラムにおいては、DO10からCONTIN
UEまでのあいだのループをくりかえし解析する。そし
て、ループ独立依存解析の結果として定義dにおける定
義値はループ末尾までのあいだでかきかえられないこと
がわかる。そして、ループ2回依存解析によってそれが
かきかえられないまま使用uに到達していることがわか
る。しかし、ループ2回依存解析部でおこなわれるdと
uの配列添字比較によって、その値はuにおいて使用さ
れないことがわかる。ループ多回依存解析においても同
様である。その結果、dからuへのデータフロー関係は
存在しないことがわかる。
〔実施例〕
まず、この実施例における入出力データについてのべ
る。入力データは中間語プログラムであるが、その形式
はとくに規定しない。原始プログラムをそのまま入力す
ると考えてもさしつかえない。出力データはデータフロ
ー情報であるが、その形式としては「データ依存グラ
フ」を使用する。データ依存グラフはプログラムにあら
われる各配列参照をあらわす「点」と、後述する3種類
のデータ依存関係をあらわす「有効枝」とからなる。計
算機上でこのデータ依存グラフを表現するには、各
「点」および「枝」をそれぞれひとつのテーブルとし、
「枝」をあらわすテーブルの要素として、データ依存関
係の種類と、「枝」の両端の「点」に対応するテーブル
へのポインタとをもうければよい。
データ依存関係はつぎの3種類(細分すると6種類)で
ある。
(1)フロー依存(ud/du依存) フロー依存は、その枝の元(配列要素定義)における定
義値が、枝の先(配列要素使用)において使用されうる
ことを示す。この有効枝をdu依存(du=definition−us
e)とよぶことができ、その逆向きの枝をud依存とよぶ
ことができる。
(2)出力依存(dk/kd依存) 出力依存は、その枝の元(配列要素定義)における定義
値が、枝の先(配列要素定義)においてかきかえられう
ることを示す。この有効枝をdk依存(dk=define−kil
l)とよぶことができ、その向きの枝をkd依存とよぶこ
とができる。
(3)逆依存(ub/bu依存) 逆依存は、その枝の元(配列要素使用)における参照値
が、枝の先においてかきかえられうることを示す。この
有向枝をub依存(ub=use−block)とよぶことができ、
その逆向きの枝をbuとよぶことができる。
入出力データは以上である。
アルゴリズムの概略は第6図から第10図に示す。単純化
のため、ここではgoto分のないプログラムだけを扱うも
のとする。第6図の手続きが主プログラムである。この
手続きは到達定義および露出使用をもとめることを通じ
て、データ依存グラフをもとめる。到達定義および露出
使用はつぎのように定義される。
(1)到達定義 プログラムのある点における到達定義とは、その点にお
いて使用可能な値を定義する配列定義をプログラム全体
にわたってあつめた集合をいう。
(この概念は変数データフロー解析における同名の概念
に似ている)。
(2)露出使用 プログラムのある点における露出使用とは、その点にお
いて参照可能な値を参照する配列使用をプログラム全体
にわたってあつめた集合をいう。
プログラムの入口の文における到達定義および露出使用
の初期値は処理601においえて与えられる。そして、主
要な計算は処理602において行なわれる。その詳細は第
7図で与える。
到達定義はフロー依存(ud/du依存)および出力依存(d
k/kd依存)の計算に用いられる。そして、露出使用は逆
依存(ub/bu依存)の計算に用いられる。到達定義およ
び露出使用はビット・ベクトル(各要素が1ビットの配
列)によって表現され、その各要素が各配列参照に対応
する。データ依存グラフも第7図の手続きにおいて計算
される。
第7図の手続きは配列データフロー解析制御部103を実
現している。すなわち、プログラムの一部を入力し、そ
のなかの各部の到達定義および露出使用を計算するとと
もに、引数LOOP−CARRIEDNESSによって指定された種類
のデータ依存グラフを計算して、これらを出力する。こ
こでは各データ依存をループ独立依存とループ運搬依存
に分類する。それらはつぎのように定義される。
(1)ループ独立依存 ある配列参照における値が、ループののおなじ繰り返え
しにおける他の参照において参照されるとき、前者と後
者のあいだの依存を、そのループに関するループ独立依
存とよぶ。
(2)ループ運搬依存 ある配列参照における値が、ループのことなる繰り返え
しにおける他の参照(または同一の参照)において参照
されるとき、前者と後者とのあいだの依存を、そのルー
プに関するループ運搬依存とよぶ。ループ運搬依存はさ
らにつぎの2種類に分けられる。
(2a)ループ2回依存 上記の定義において、2つのループ繰り返えしのあいだ
の距離が1のとき(すなわち、つぎの繰り返えしにおい
て参照されるとき)。
(2b)ループ多回依存 上記の定義において、2つのループ繰り返えしのあいだ
の距離が2以上のとき。
指定されたループ依存性を判定し(701)、それがルー
プ独立依存のときは処理702〜705を実行する。すなわ
ち、まず解析対象プログラムがふくむ最初の最外側ルー
プ以前の部分を第10図の手続きにわたして解析する(70
2)。つぎに、解析対象プログラムの各最外側ループL
について処理704〜705を繰り返えす。処理704はループ
Lのループ・データフロー解析であり、第8図の手続き
によっておこなう。また、処理705はループLの直後か
ら次のループまでのあいだの部分の解析であり、第10図
の手続きによっておこなう。
一方、指定されたループ依存性がループ回依存またはル
ープ多回依存のときは処理76を実行する。すなわち、内
側ループ内の制御構造を無視し、内部の文を1回だけ走
査する。いずれの場合においても各文はふかさ優先順
(depth−firstorder)で走査される。
第8図の手続きはループ・データフロー解析部104を実
現している。処理801〜803がループ独立依存解析部501
を実現し、処理804〜806がループ2回依存解析部503を
実現し、処理807〜808がループ多回依存解析部505を実
現している。ループ独立依存解析部501,ループ2回依存
解析部503およびループ多回依存解析部505はつぎの2点
において異なっているほかは等しい。
(1)前処理および後処理部部分が異なる。
(2)配列データフロー解析制御におけるルーフ依存性
の指定が異なる。すなわち、ループ独立依存解析部501
においてはループ独立依存、ループ2回依存解析部503
においてはループ2回依存、ループ多回依存解析部505
においてはループ多回依存を指定する。
ループ独立依存解析部501においては、まず前処理801と
して第9図の手続きを実行し、ループ入口文における到
達定義および露出使用の値を代入する。つぎに、配列デ
ータフロー解析制御802を実行する。すなわち、第8図
の手続きにわたされたプログラム全体について第7図の
手続きを実行する。おわりに後処理803として解析中の
ループLの出口の文の到達定義を変数RDi、露出使用を
変数EUiに代入して保存する。
第9図はループ入口文における到達定義および露出使用
の値を決定する。まずループ依存性判定901を行なっ
て、ループ依存性がループ独立依存のときは処理902、
それがループ2回依存またはループ多回依存のときは処
理903を実行する。処理902では、解析中のループの入口
文の直先文、すなわち直前に実行される文のうちループ
外のものの到達定義を入口文の到達定義に代入し、その
露出使用を入口文の露出使用に代入する。また処理903
では、解析中のループの入口文の直先文のうちループ内
のもの(すなわちループの末尾の文)の到達定義を入口
文の到達定義に代入し、その露出使用を入口文の露出使
用に代入する。
第10図はループを含まないかたちにきりだされたプログ
ラム(部分)内の各文についての処理を行なう手続きで
ある。各文sについて処理1001〜1004を実行する。まず
文sの先頭における到達定義および露出使用をもとめる
(処理1001)。つぎに、文s内の各配列使用(USE)に
ついて処理1002を繰り返えす。そして最後に文s内の各
配列定義DEFについて処理1003〜1004を繰り返えす。
処理1002はフロー依存を計算する。すなわち、文sの先
頭における到達定義(集合)の各要素の添字と使用USE
の添字とを比較することによってデータのながれを決定
し、フロー依存の有無を判定する。フロー依存があると
判定されたときは、データ依存グラフにそのフロー依存
をあらわす枝を追加する。ただし、解析対象ループと指
定されたループ依存性とをその枝の付加情報とする(実
現上は、枝をあらわすテーブルにフイールドをもうけ
て、ループをあらわすテーブルのポインタとループ依存
性とを記録すればよい)。
処理1003は逆依存を計算する。処理内容は、処理1002に
おけるUSEをDEFにおきかえ、到達定義を露出使用でおき
かえ、フロー依存を効依存におきかえた処理内容であ
る。
処理1004は出力依存を計算する。処理内容は、処理1002
におけるUSEをEFにおきかえ、フロー依存を出力依存に
おきかえた処理内容である。
〔発明の効果〕
この発明によれば、内側に逐次実行以外の制御構造すな
わち条件構造や繰り返えし構造(ループ)を含むループ
を正確に扱うことができるため、従来より正確な配列デ
ータフロー情報をもとめることができる。そのため、よ
り強力な最適化が可能になり、その結果としてより高性
能の目的プログラムを得ることができるという効果があ
る。
【図面の簡単な説明】
第1図はこの発明における配列データフロー解析法の概
要である。第2図はコンパイラの処理概要、第3図はそ
のうちの最適化処理の概要である。第4図は従来の解析
法の問題点の説明図である。第5図は第1図のループ・
データフロー解析部104の詳細図である。第6図〜第10
図は実施例における解析のフローチャートを示す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】コンパイラの最適化部において、つぎの
    (a),(b),(c)の3つの部分から構成されるこ
    とを特徴とする配列データフロー解析装置。 (a)コンパイル対象プログラムの制御のながれおよび
    ループの構成をあらわす制御フロー情報をもとめる制御
    フロー解析部、 (b)コンパイル対象プログラムがふくむ各ループをと
    りだして(c)にわたす配列データフロー解析制御部、 (c)ループをくりかえして走査してそのデータフロー
    情報をもとめるループ・データフロー解析部であって、
    つぎの(c1),(c2),(c3)をふくむもの、 (c1)ループの1回のくりかえしのなかで生じるデータ
    依存関係(変数参照どうしのあいだのデータのながれの
    関係)をもとめるループ独立依存解析部、 (c2)ループのことなるくりかえしのあいだで生じるデ
    ータ依存関係をもとめるループ多回依存解析部、 (c3)(c1)および(c2)から出力されるデータ依存関
    係を合成してデータフロー情報をもとめるデータフロー
    合成部。
JP61048309A 1986-03-07 1986-03-07 配列デ−タフロ−解析装置 Expired - Fee Related JPH0685148B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP61048309A JPH0685148B2 (ja) 1986-03-07 1986-03-07 配列デ−タフロ−解析装置
GB08703650A GB2191315A (en) 1986-03-07 1987-02-17 A program translation method
US07/015,018 US4773007A (en) 1986-03-07 1987-02-17 Complier code optimization method for a source program having a first and second array definition and use statements in a loop

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61048309A JPH0685148B2 (ja) 1986-03-07 1986-03-07 配列デ−タフロ−解析装置

Publications (2)

Publication Number Publication Date
JPS62206637A JPS62206637A (ja) 1987-09-11
JPH0685148B2 true JPH0685148B2 (ja) 1994-10-26

Family

ID=12799815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61048309A Expired - Fee Related JPH0685148B2 (ja) 1986-03-07 1986-03-07 配列デ−タフロ−解析装置

Country Status (3)

Country Link
US (1) US4773007A (ja)
JP (1) JPH0685148B2 (ja)
GB (1) GB2191315A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142681A (en) * 1986-07-07 1992-08-25 International Business Machines Corporation APL-to-Fortran translators
JP2539385B2 (ja) * 1986-08-08 1996-10-02 株式会社日立製作所 情報処理装置
JPH0795274B2 (ja) * 1986-09-19 1995-10-11 株式会社日立製作所 配列添字解析方法
JP2749039B2 (ja) * 1987-11-06 1998-05-13 株式会社日立製作所 オブジェクト生成方法
US5396627A (en) * 1987-11-06 1995-03-07 Hitachi, Ltd. Method of producing object program based on interprocedural dataflow analysis of a source program
US5241678A (en) * 1988-04-15 1993-08-31 Hitachi, Ltd. Program translation based on generalized partial computation
US5193190A (en) * 1989-06-26 1993-03-09 International Business Machines Corporation Partitioning optimizations in an optimizing compiler
JPH03111971A (ja) * 1989-09-27 1991-05-13 Toshiba Corp ベクトル化診断方式
US5202995A (en) * 1989-10-12 1993-04-13 International Business Machines Corporation Method for removing invariant branches from instruction loops of a computer program
JPH03150636A (ja) * 1989-11-08 1991-06-27 Matsushita Electric Ind Co Ltd コンパイル方法
JPH05189472A (ja) * 1992-01-16 1993-07-30 Nec Corp コンパイラのベクトル化処理方式
US5448737A (en) * 1992-03-17 1995-09-05 International Business Machines Corporation System and method for optimizing computer code using a compact data flow representation
US6055627A (en) * 1992-06-22 2000-04-25 Hitachi, Ltd. Compiling method of accessing a multi-dimensional array and system therefor
US5522074A (en) * 1992-12-14 1996-05-28 Nec Corporation Vectorization system for vectorizing loop containing condition induction variables
US5367685A (en) * 1992-12-22 1994-11-22 Firstperson, Inc. Method and apparatus for resolving data references in generated code
US5911076A (en) * 1993-06-14 1999-06-08 International Business Machines Corporation Object oriented framework for creating new emitters for a compiler
JP3233245B2 (ja) * 1993-07-01 2001-11-26 日本電気株式会社 言語処理方法
JP3190773B2 (ja) * 1993-09-30 2001-07-23 日本電気株式会社 言語処理プログラムのコンパイル処理方法
US5485619A (en) * 1993-12-29 1996-01-16 International Business Machines Corporation Array variable transformation system employing subscript table mapping to scalar loop indices
JP2755154B2 (ja) * 1994-02-23 1998-05-20 日本電気株式会社 プログラム変換処理装置およびプログラム変換処理方法
US6074433A (en) * 1995-08-25 2000-06-13 Fujitsu Limited Optimization control apparatus and optimization control method for array descriptions
US5790859A (en) * 1995-12-21 1998-08-04 International Business Machines Corporation Method of, system for, and computer program product for efficient identification of private variables in program loops by an optimizing compiler
US6049864A (en) * 1996-08-20 2000-04-11 Intel Corporation Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
JP3196675B2 (ja) * 1996-12-27 2001-08-06 日本電気株式会社 言語処理方式
US5991540A (en) * 1997-04-01 1999-11-23 Intel Corporation Method for identifying partial redundancies in existing processor architectures
US6031994A (en) * 1997-04-01 2000-02-29 Intel Corporation Method for determining the set of variables that may be ambiguously defined at a point in a computer program
US6029005A (en) * 1997-04-01 2000-02-22 Intel Corporation Method for identifying partial redundancies in a new processor architecture
US6151704A (en) * 1997-04-01 2000-11-21 Intel Corporation Method for optimizing a loop in a computer program by speculatively removing loads from within the loop
US5812856A (en) * 1997-06-23 1998-09-22 Motorola, Inc. Efficient ROM and PLA recoding to save chip area
US7624387B2 (en) * 2003-04-10 2009-11-24 Panasonic Corporation Compiler, program product, compilation device, communication terminal device, and compilation method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4374408A (en) * 1971-06-16 1983-02-15 Burroughs Corporation Multi-pass system and method for source to source code translation
US4567574A (en) * 1983-03-14 1986-01-28 International Business Machines Corporation Optimizing cobol object code instruction path length with respect to perform statements
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US4642765A (en) * 1985-04-15 1987-02-10 International Business Machines Corporation Optimization of range checking

Also Published As

Publication number Publication date
GB8703650D0 (en) 1987-03-25
JPS62206637A (ja) 1987-09-11
GB2191315A (en) 1987-12-09
US4773007A (en) 1988-09-20

Similar Documents

Publication Publication Date Title
JPH0685148B2 (ja) 配列デ−タフロ−解析装置
US6654952B1 (en) Region based optimizations using data dependence graphs
Creusillet et al. Interprocedural array region analyses
Garrido et al. Challenges of refactoring C programs
JPH10228382A (ja) コンパイル方式
US20100199269A1 (en) Program optimization device and program optimization method
US5067068A (en) Method for converting an iterative loop of a source program into parellelly executable object program portions
JP4001286B2 (ja) プログラム保守支援装置、プログラム保守支援方法、およびプログラム
JPS61241837A (ja) 範囲検査の最適化方法
Weber et al. A case study in detecting software security vulnerabilities using constraint optimization
US7120905B2 (en) System and method for transformation of assembly code for conditional execution
JP2001125792A (ja) 最適化促進装置
Guilfanov Simple type system for program reengineering
Vasenin et al. Intermediate representation of programs with type specification based on pattern matching
JP2701246B2 (ja) コンパイラのベクトル化処理方式
JP2723020B2 (ja) トレースデータ生成システム
Pavlov et al. CREATING TRANSLATORS OF HIGH-LEVEL PROGRAMMING LANGUAGES
JPH0785000A (ja) ベクトル化コンパイル処理方法および処理装置
JP2801193B2 (ja) インダクション変数のベクトル化処理装置
JP3235462B2 (ja) whileループ構造変換装置
Nilsen A stream data type that supports goal-directed pattern matching on unbounded sequences of values
JPH04344535A (ja) ループの展開装置
Cohen et al. A case study in program transformation: Translation into Polish
Ghodrat et al. Short-circuit compiler transformation: Optimizing conditional blocks
Andersen et al. A Graphical Tool for Proving Progress

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees