JPH11167492A - ループ飛び出し文を含むループに対する配列サマリ解析方法 - Google Patents

ループ飛び出し文を含むループに対する配列サマリ解析方法

Info

Publication number
JPH11167492A
JPH11167492A JP9348471A JP34847197A JPH11167492A JP H11167492 A JPH11167492 A JP H11167492A JP 9348471 A JP9348471 A JP 9348471A JP 34847197 A JP34847197 A JP 34847197A JP H11167492 A JPH11167492 A JP H11167492A
Authority
JP
Japan
Prior art keywords
loop
array
variable
control variable
value
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
JP9348471A
Other languages
English (en)
Other versions
JP3539613B2 (ja
Inventor
Takayoshi Iizuka
孝好 飯塚
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 JP34847197A priority Critical patent/JP3539613B2/ja
Priority to US09/201,818 priority patent/US6282704B1/en
Publication of JPH11167492A publication Critical patent/JPH11167492A/ja
Application granted granted Critical
Publication of JP3539613B2 publication Critical patent/JP3539613B2/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/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • G06F8/452Loops

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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ループ飛び出し文
を含むループに対して近似無しで配列サマリ解析を行う
方法に関する。
【0002】
【従来の技術】並列化コンパイラでは、プログラムの実
行性能を向上するために、種々の並列化変換をプログラ
ムに実施する。並列化変換は主にループに対して適用さ
れるが、各ループに任意の並列化変換が適用できるわけ
ではなく、どの並列化変換が適用できるかを判定する必
要がある。
【0003】並列化変換の適用性判定の核になるのは、
ループ内でのデータの参照状況解析である。ループ内で
参照されるデータには、スカラ変数と配列がある。スカ
ラ変数の参照では常に同じメモリ領域が参照される。こ
れに対して、配列は、添字の値によって別のメモリ領域
が参照されるため、ループ内でどの配列のどの部分がど
のように参照されるかを解析する必要がある。
【0004】そこで、並列化コンパイラでの並列化変換
適用性判定の手段として、ループ内で参照される各配列
の配列部分及び参照の性質を解析する配列サマリ解析が
開発されている。配列サマリ解析については、文献1
「M. Hall, B. Murphy, S. AmarASinghe, S. Liao,
M. Lam, Interprocedural analysis for parallelizati
on, Proceedings of the 8th International Workshop
on Languages and Compilers for Parallel Computing,
Springer-Verlag, August 1995.」に示されている。
【0005】例として、図4のプログラムで、配列Aに
対して配列プライベート化と呼ばれる並列化変換の適用
性を判定する場合の配列サマリ解析について説明する。
配列サマリ解析では、最内側ループから外側ループに向
かってボトムアップに、また、プログラムの実行順序に
ついて逆順に、配列の参照状況を解析し、図8の配列サ
マリを求める。
【0006】ただし、図8において、Rは文やループ本
体、ループなどのプログラム部分を表す。なお、ループ
本体とはループ内の文全体であり、例えば図4のループ
L2の本体は文S2のみである。以下、ループLに対し
てループLの本体をL(body)で表す。ループ本体
の配列サマリは、ループの1回のイタレーション(ルー
プの1回分の繰り返し)に対する配列サマリであり、ル
ープの配列サマリは、ループの全イタレーションに対す
る配列サマリである。
【0007】まず文S2での配列サマリは、図9(a)の
ようになる。ループL2は文S2しか含まないので、ル
ープL2の本体の配列サマリは、S2の配列サマリその
ものとなり、図9(b)のようになる。Fourier-Motzkin変
数消去法などの変数消去法を用いてループL2の本体の
配列サマリからループL2のループ制御変数Kを消去す
ることにより、ループL2の配列サマリは図9(c)のよ
うになる。同様の処理を文S1及びループL1に対して
行うことにより、ループL1の配列サマリは図9(d)の
ようになる。次に、ループL1とループL2の配列サマ
リからループL0の本体の配列サマリを求めると、図9
(e)のようになる。
【0008】図9(e)において、ループL0の本体で配
列AのExposedReadが空集合になることか
ら、L0の各イタレーションで値を読み出される全ての
配列部分は、同イタレーション内で予め値を設定済みで
あることが分かる。よって、ループL0の各イタレーシ
ョンでは、他のイタレーションで設定した配列要素の値
を読み出すことが無いことが分かる。そこで、ループL
0の各イタレーションで別々の配列TA(1:N)を用
意して配列Aの代わりに用いることにより、ループL0
の各イタレーションはお互いに無関係に実行できること
が分かる。このような変換を配列プライベート化と呼
ぶ。
【0009】配列プライベート化を行うことにより、ル
ープL0の各繰り返しは独立に実行できるので、図5の
ように並列化することができる。ただし、DOALLは
並列化ループの始まりを示す。また、文S0は、配列T
A(1:N)のメモリ領域をループの各イタレーション
で別々に用意することを示す。
【0010】
【発明が解決しようとする課題】上記従来技術では、ル
ープ内にループ飛び出しがある場合、近似して配列サマ
リ解析を行うと記述されている。しかしながら、具体的
な近似方法は上記従来技術では示されていなかった。
【0011】なお、一般に、参照の可能性を示す集合に
ついては、実際の集合を含む集合で近似すればよく、参
照の必然性を示す集合については、実際の集合に含まれ
る集合で近似すれば良いことが知られている。よって、
ループに対する配列サマリのうち、値が書き込まれる可
能性がある配列部分の集合と、値が読み出される可能性
がある配列部分の集合と、値が書き込まれる前に読み出
される可能性がある配列部分の集合は、ループ飛び出し
が無い場合の配列サマリで近似し、必ず値が書き込まれ
る配列部分の集合は空集合で近似すれば、ループ飛び出
しを含むループに対しても配列サマリ解析が行える。
【0012】このように、従来技術の拡張により、ルー
プ飛び出しを含むループに対する配列サマリ解析を行う
方法が考えられる。
【0013】しかし、上記のような従来技術の拡張で
は、近似により解析精度が不足し、並列化変換が実際に
は適用可能であるにもかかわらず、適用不能と判断して
しまう場合があるという問題があった。
【0014】例えば、図6のプログラムでは、ループL
1がループ飛び出しを含んでいるため、ループL1で必
ず値が書き込まれる配列部分の集合MustWrite
(L1)が空集合で近似される。そのため、図10に示
すように、ループL0の本体の各イタレーションで値が
書き込まれる前に読み出される可能性がある配列部分の
集合、即ち、ExposedRead(L0(body))が
空集合にならず、ループL0で配列Aをプライベート化
できると判定できなかった。そのために、ループL0の
並列化も実施できなかった。
【0015】本発明の目的は、ループ飛び出し文を含む
ループに対して配列サマリ解析の精度を向上し、配列プ
ライベート化の適用性を向上することである。
【0016】
【課題を解決するための手段】上記課題を解決するた
め、請求項1に係る発明は、ソースプログラムから目的
プログラムを生成する言語処理系における配列サマリ解
析方法であって、(a)ソースプログラムの構文解析を行
い中間コードを生成する構文解析ステップと、(b)該中
間コード内の各ループ内に対して、該ループで値が書き
込まれる可能性がある配列部分の集合と、該ループで必
ず値が書き込まれる配列部分の集合と、該ループで値が
読み出される可能性がある配列部分の集合と、該ループ
で値が書き込まれる前に読み出される可能性がある配列
部分の集合とから構成される配列サマリを生成する配列
サマリ解析ステップと、(c)該配列サマリを元に、該中
間コード内のループに対して配列プライベート化を行う
配列プライベート化ステップと、(d)前記ステップ(c)の
書き換え後の中間コード内のループに対して並列化を行
うループ並列化ステップと、(e)前記ステップ(d)の書き
換え後の中間コードに対して目的プログラムを生成する
目的プログラム生成ステップとを含み、前記ステップ
(b)が、(f)ループ飛び出し文およびループ飛び出し時の
ループ制御変数の値をスカラ変数に設定する文を含むル
ープに対して該スカラ変数の値をループ制御変数の上限
として配列サマリを計算するループ飛び出し時制御変数
値配列サマリ解析ステップを含むことを特徴とする。
【0017】請求項2に係る発明は、請求項1の前記ス
テップ(f)において、ループ飛び出し文およびループ飛
び出し時のループ制御変数の値をスカラ変数に設定する
文がループ内に含まれる場合には、該ループの本体の配
列サマリにおいて該ループのループ制御変数の上限を該
スカラ変数で置き換え、変数消去法で該ループ制御変数
を消去した結果を該ループの配列サマリとすることを特
徴とする。
【0018】以上により、ループ飛び出し文を含むルー
プであっても、ループ飛び出し時のループ制御変数の値
をスカラ変数に設定する文がループ内に含まれる場合に
は、近似なしで配列サマリが計算されるので、配列サマ
リ解析の精度が向上し、配列プライベート化が適用可能
となる。
【0019】
【発明の実施の形態】本発明は、ループ飛び出し文を含
むループに対して近似無しで配列サマリ解析を行う方法
に関するものである。以下では、本発明の1実施形態を
図面を用いて説明する。
【0020】図1は、本発明実施後の、言語処理系の構
成を示す。言語処理系20は、ソースプログラム10を
入力し、ループ並列化などの最適化を施したうえで、目
的プログラム30を生成する。ソースプログラム10
は、FortranやCなどのプログラミング言語で記
述されたプログラムであり、目的プログラム30は、コ
ンパイラでは機械語命令であり、プリプロセッサではF
ortranやCなどのプログラミング言語である。
【0021】以下では、ソースプログラム10がFor
tranで記述されたプログラムであり、目的プログラ
ム30もFortranで記述されたプログラムである
場合を例にして説明する。すなわち、言語処理系20が
プリプロセッサの場合について説明する。
【0022】言語処理系は、21,22,24,25,
26の各ステップから構成される。これらのうち、ステ
ップ22では、ステップ23の処理が追加されている
が、他のステップは、公知の技術である。よって、ステ
ップ22以外については、簡単な説明に止める。
【0023】まずステップ21では、ソースプログラム
10の構文解析を行い中間コード28を生成する構文解
析を行う。
【0024】ステップ22では、中間コード28の各ル
ープ部分に対して、ループの実行により値が書き込まれ
る可能性がある配列部分の集合と、ループで必ず値が書
き込まれる配列部分の集合と、ループで値が読み出され
る可能性がある配列部分の集合と、ループで値が書き込
まれる前に読み出される可能性がある配列部分の集合か
ら構成される配列サマリ29を生成する配列サマリ解析
を行う。
【0025】ステップ22は、ステップ23の処理を含
んでおり、ステップ23では、ループ飛び出し文および
ループ飛び出し時のループ制御変数の値をスカラ変数に
設定する文の両方を含むループに対して、このスカラ変
数の値をループ制御変数の上限として近似無しで配列サ
マリ29を計算するループ飛び出し時制御変数値配列サ
マリ解析を行う。なお、ステップ22およびステップ2
3の詳細については、後述する。
【0026】ステップ24では、配列サマリ29を元
に、中間コード28内のループに対して配列プライベー
ト化を行う。ステップ25では、ステップ24の書き換
え後の中間コード28内のループに対してループ並列化
を行う。ステップ26では、ステップ25の書き換え後
の中間コード28に対して目的プログラム30を生成す
る。
【0027】上記の構成により、ループ飛び出し文を含
むループに対して、そのループがループ飛び出し時のル
ープ制御変数の値をスカラ変数に設定する文を含む場合
には、ステップ23により近似無しで配列サマリ29が
解析されるので、配列プライベート化24の適用対象が
増える。即ち、配列プライベート化24の適用性が向上
する。
【0028】図2は、図1のステップ22およびステッ
プ23の詳細フローである。なお、図2のステップのう
ち、220,230,235,237が図1のステップ
23の詳細である。なお、図2では、与えられたループ
Lに対して、配列サマリ29を計算する。
【0029】ステップ210では、ループLの本体の配
列サマリ29(以下、ASと呼ぶ)を求める。ループ本
体の配列サマリ29の解析方法は公知なので詳細は省略
するが、ループ本体の配列サマリ29を解析するに当た
って内側ループの配列サマリ29を求める場合には、図
1の処理を再帰的に呼び出す。
【0030】ステップ220では、ループLがループ飛
び出し文を含むか否か判定する。これが真の場合はステ
ップ230を実行し、偽の場合は、ステップ250を実
行する。
【0031】ステップ230では、ループ飛び出し時の
ループLのループ制御変数の値をスカラ変数に設定する
文がループLに含まれるか判定する。この処理の詳細
は、後述するが、この結果が真の場合は235を実行
し、偽の場合は240を実行する。
【0032】ステップ235では、配列サマリASにお
いて、ループLのループ制御変数に対する上限を前記ス
カラ変数で置きかえる。ステップ237では、ステップ
235で変更した配列サマリASから、ループLのルー
プ制御変数を消去し、この結果をLの配列サマリとす
る。
【0033】ステップ、220,230,235,23
7により、ループ飛び出し文およびループ飛び出し時の
ループ制御変数の値をスカラ変数に設定する文を含むル
ープに対して、配列サマリ29を近似無しに計算するこ
とが出来る。
【0034】ステップ240では、ループ飛び出し時の
ループ制御変数の値をスカラ変数に設定する文が含まれ
ない場合の近似を行う。具体的には、値が必ず書き込ま
れる配列部分の集合を空集合にする。このステップの後
でステップ250を実行することにより、ループに対す
る配列サマリ29のうち、値が書き込まれる可能性があ
る配列部分の集合と値が読み出される可能性がある配列
部分の集合と値が書き込まれる前に読み出される可能性
がある配列部分の集合は、ループ飛び出しがない場合の
配列サマリで近似され、必ず値が書き込まれる配列部分
の集合は空集合で近似される。
【0035】ステップ250では、変数消去法により、
配列サマリASからループLのループ制御変数を消去
し、この結果をLの配列サマリとする。
【0036】なお、ステップ237は図1のステップ2
3の処理の一部のため、ステップ250と別の処理とし
たが、これらは同一の処理なので、ステップ235の処
理の次にステップ250を実行しても良い。
【0037】図3は、図2のステップ230の詳細フロ
ーである。まずステップ310では、ループLの本体の
先頭の文をSとする。
【0038】ステップ320では、Sがループ飛び出し
文であるか否か判定し、これが真の場合はステップ33
0を実行し、偽の場合はステップ340を実行する。ス
テップ330では、ループ飛び出し時のループLのルー
プ制御変数の値をスカラ変数に設定する文は無いと判定
して、処理を終わる。
【0039】ステップ340では、Sが代入文で、か
つ、左辺がスカラ変数(以下、Vとする)、右辺がルー
プLのループ制御変数であるか否か判定する。これが真
の場合は、ステップ342を実行し、偽の場合は、ステ
ップ360を実行する。
【0040】ステップ342では、Sがループ飛び出し
文を支配するか否か判定する。これが真の場合は、ステ
ップ344を実行し、偽の場合はステップ330を実行
する。なお、文S1が文S2を支配するとは、プログラ
ムの先頭からS2に至る全てのパスでS1が予め実行さ
れることを示す。支配関係の解析は、公知の技術である
ので、詳細は省略する。
【0041】ステップ344では、スカラ変数Vへの代
入文がループL中で1つであるか否か判定する。これが
真の場合は、ステップ350を実行し、偽の場合は、ス
テップ330を実行する。
【0042】ステップ340,342,344により、
文Sでループ飛び出し時のループ制御変数の値をスカラ
変数Vに設定していることが判定できる。ステップ35
0では、ループ飛び出し時のループLのループ制御変数
の値をスカラ変数に設定する文はSであると判定して、
処理を終わる。
【0043】ステップ360では、ループL内に文Sの
次の文が有るか否か判定する。これが真の場合は、ステ
ップ370を実行し、L内のSの次の文を新たなSとし
て設定し、ステップ320に制御を移してループする。
偽の場合は、ステップ330を実行する。
【0044】次に、図6のソースプログラム例を用い
て、本発明の適用効果を説明する。図11は、図6のソ
ースプログラム例に対する本発明での配列サマリ29を
示す。なお、図6の例ではループL3とループL2はル
ープ飛び出し文を含まないので、従来と同様の配列サマ
リ解析により解析され、図10(a)および図10(b)と同
じになる。内容が同じなので、図11ではこれらの配列
サマリは省略した。
【0045】まずループL1はループ飛び出し文S3を
含むので、図2のステップ220の判定結果が真とな
り、ステップ230が実行される。ステップ230で
は、図3のフローに従って、ループ飛び出し時のループ
L1のループ制御変数Kの値をスカラ変数に設定する文
がループLに含まれるか否か判定する。この結果、文S
1がそのような文であると判定され、ステップ235が
実行される。
【0046】ステップ235では、ループL1の本体の
配列サマリ29において、ループL1のループ制御変数
Kに対する上限を文S1の代入先スカラ変数KEで置き
かえる。図11(a)は、ループL1の本体の配列サマリ
29であり、図11(b)は、ループ制御変数Kに対する
上限を文S1の代入先スカラ変数KEで置きかえたもの
である。
【0047】図11(b)からループL1のループ制御変
数Kを消去すると、図11(c)になり、ループL1に対
するExposedReadが近似無しで表現されたこ
とが分かる。
【0048】図11(c)を元にループL0に対する配列
サマリ29を計算すると図11(d)となり、ループL0
の本体に対するExposedReadが空集合になる
ことが分かる。よって、ループL0内で配列Aはプライ
ベート化可能であることが分かる。
【0049】以上より、図1のステップ24において、
ループL0内で配列Aはプライベート化され、この結
果、図1のステップ25でループL0はループ並列化さ
れる。よって、ステップ26での処理により、図7に示
す目的プログラム30が生成される。
【0050】
【発明の効果】本発明により、ループ飛び出し文を含む
ループに対して配列サマリ解析の精度が向上し、配列プ
ライベート化の適用性が向上する。これにより、ループ
並列化可能となるループが増大し、プログラムの実行速
度が向上する。
【図面の簡単な説明】
【図1】 本発明実施後の言語処理系の構成図。
【図2】 本発明実施後の配列サマリ解析の処理フロー
図。
【図3】 ステップ230の詳細フロー図。
【図4】 従来技術でのソースプログラム例を示す図。
【図5】 従来技術での目的プログラム例を示す図。
【図6】 本発明でのソースプログラム例を示す図。
【図7】 本発明での目的プログラム例を示す図。
【図8】 配列サマリを示す図。
【図9】 従来技術実施例での配列サマリを示す図。
【図10】 ループ飛び出しを含むループの従来技術配
列サマリを示す図。
【図11】 ループ飛び出しを含むループの本発明配列
サマリを示す図。
【符号の説明】
10…ソースプログラム、20…言語処理系、30…目
的プログラム、21…構文解析、22…配列サマリ解
析、23…ループ飛び出し時制御変数値配列サマリ解
析、24…配列プライベート化、25…ループ並列化、
26…目的プログラム生成、28…中間コード、29…
配列サマリ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】ソースプログラムから目的プログラムを生
    成する言語処理系における配列サマリ解析方法であっ
    て、(a)ソースプログラムの構文解析を行い中間コード
    を生成する構文解析ステップと、(b)該中間コード内の
    各ループ内に対して、該ループで値が書き込まれる可能
    性がある配列部分の集合と、該ループで必ず値が書き込
    まれる配列部分の集合と、該ループで値が読み出される
    可能性がある配列部分の集合と、該ループで値が書き込
    まれる前に読み出される可能性がある配列部分の集合と
    から構成される配列サマリを生成する配列サマリ解析ス
    テップと、(c)該配列サマリを元に、該中間コード内の
    ループに対して配列プライベート化を行う配列プライベ
    ート化ステップと、(d)前記ステップ(c)の書き換え後の
    中間コード内のループに対して並列化を行うループ並列
    化ステップと、(e)前記ステップ(d)の書き換え後の中間
    コードに対して目的プログラムを生成する目的プログラ
    ム生成ステップとを含み、前記ステップ(b)が、(f)ルー
    プ飛び出し文およびループ飛び出し時のループ制御変数
    の値をスカラ変数に設定する文を含むループに対して該
    スカラ変数の値をループ制御変数の上限として配列サマ
    リを計算するループ飛び出し時制御変数値配列サマリ解
    析ステップ を含むことを特徴とする配列サマリ解析方
    法。
  2. 【請求項2】前記ステップ(f)において、ループ飛び出
    し文およびループ飛び出し時のループ制御変数の値をス
    カラ変数に設定する文がループ内に含まれる場合には、
    該ループの本体の配列サマリにおいて該ループのループ
    制御変数の上限を該スカラ変数で置き換え、変数消去法
    で該ループ制御変数を消去した結果を該ループの配列サ
    マリとすることを特徴とする請求項1に記載の配列サマ
    リ解析方法。
JP34847197A 1997-12-03 1997-12-03 ループ飛び出し文を含むループに対する配列サマリ解析方法 Expired - Lifetime JP3539613B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP34847197A JP3539613B2 (ja) 1997-12-03 1997-12-03 ループ飛び出し文を含むループに対する配列サマリ解析方法
US09/201,818 US6282704B1 (en) 1997-12-03 1998-12-01 Method for analyzing array summary for loop including loop exit statement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34847197A JP3539613B2 (ja) 1997-12-03 1997-12-03 ループ飛び出し文を含むループに対する配列サマリ解析方法

Publications (2)

Publication Number Publication Date
JPH11167492A true JPH11167492A (ja) 1999-06-22
JP3539613B2 JP3539613B2 (ja) 2004-07-07

Family

ID=18397239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34847197A Expired - Lifetime JP3539613B2 (ja) 1997-12-03 1997-12-03 ループ飛び出し文を含むループに対する配列サマリ解析方法

Country Status (2)

Country Link
US (1) US6282704B1 (ja)
JP (1) JP3539613B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002013250A1 (fr) * 2000-08-04 2002-02-14 Tokyo Electron Limited Antenne radiale et dispositif à plasma l'utilisant

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337437B2 (en) * 1999-12-01 2008-02-26 International Business Machines Corporation Compiler optimisation of source code by determination and utilization of the equivalence of algebraic expressions in the source code
US8176108B2 (en) * 2000-06-20 2012-05-08 International Business Machines Corporation Method, apparatus and computer program product for network design and analysis
US20040098711A1 (en) * 2002-11-20 2004-05-20 Yonghong Song Method and system for dependence analysis
US7089545B2 (en) * 2002-12-17 2006-08-08 International Business Machines Corporation Detection of reduction variables in an assignment statement
US7581215B1 (en) 2003-06-30 2009-08-25 Sun Microsystems, Inc. Dependency analysis system and method
US7171544B2 (en) * 2003-12-15 2007-01-30 International Business Machines Corporation Run-time parallelization of loops in computer programs by access patterns
US7487497B2 (en) * 2004-08-26 2009-02-03 International Business Machines Corporation Method and system for auto parallelization of zero-trip loops through induction variable substitution
US8037462B2 (en) * 2006-08-02 2011-10-11 International Business Machines Corporation Framework for parallelizing general reduction
US8112751B2 (en) * 2007-03-01 2012-02-07 Microsoft Corporation Executing tasks through multiple processors that process different portions of a replicable task
US8381195B2 (en) 2010-06-17 2013-02-19 Microsoft Corporation Implementing parallel loops with serial semantics
JP6164054B2 (ja) * 2013-11-08 2017-07-19 富士通株式会社 情報処理装置、コンパイル方法およびコンパイラプログラム
WO2015174428A1 (ja) 2014-05-15 2015-11-19 旭硝子株式会社 ガラス物品、及びガラス物品の製造方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396627A (en) * 1987-11-06 1995-03-07 Hitachi, Ltd. Method of producing object program based on interprocedural dataflow analysis of a source program
JP2749039B2 (ja) * 1987-11-06 1998-05-13 株式会社日立製作所 オブジェクト生成方法
JP2834171B2 (ja) * 1989-02-06 1998-12-09 株式会社日立製作所 コンパイル方法
US5437034A (en) * 1991-04-19 1995-07-25 Hitachi, Ltd. Method of generating from source program object program by which final values of variables for parallel execution are guaranteed
US5361354A (en) * 1991-12-17 1994-11-01 Cray Research, Inc. Optimization of alternate loop exits
JP3208870B2 (ja) * 1992-10-30 2001-09-17 株式会社日立製作所 データ分割パタンの評価方法
GB9305263D0 (en) * 1993-03-15 1993-05-05 Univ Westminster Parrallel computation
JP3417984B2 (ja) * 1993-09-10 2003-06-16 株式会社日立製作所 キャッシュ競合削減コンパイル方法
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
US5812852A (en) * 1996-11-14 1998-09-22 Kuck & Associates, Inc. Software implemented method for thread-privatizing user-specified global storage objects in parallel computer programs via program transformation
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US5953531A (en) * 1997-07-25 1999-09-14 International Business Machines Corporation Method of, system for, and computer program product for minimizing loop execution time by optimizing block/tile sizes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002013250A1 (fr) * 2000-08-04 2002-02-14 Tokyo Electron Limited Antenne radiale et dispositif à plasma l'utilisant

Also Published As

Publication number Publication date
JP3539613B2 (ja) 2004-07-07
US6282704B1 (en) 2001-08-28

Similar Documents

Publication Publication Date Title
JPH0814817B2 (ja) 自動ベクトル化方法
US6253371B1 (en) Method for supporting parallelization of source program
JP3311462B2 (ja) コンパイル処理装置
JP2838855B2 (ja) コンパイラの最適化方法
JP2921190B2 (ja) 並列実行方式
JPH11259437A (ja) 不要バリア命令の削減方式
JP2001282549A (ja) プログラム変換装置及び方法並びに記録媒体
US20100153937A1 (en) System and method for parallel execution of a program
EP2687981A1 (en) Automated compiler specialisation for global optimisation
JPH01121938A (ja) オブジェクト生成方法
JP4346316B2 (ja) 複数の意味レベルによるアスペクト指向プログラミングのための方法
JPH07105012A (ja) 言語処理プログラムのコンパイル処理方式
JP3539613B2 (ja) ループ飛び出し文を含むループに対する配列サマリ解析方法
JP3651774B2 (ja) コンパイラ及びそのレジスタ割付方法
US6009273A (en) Method for conversion of a variable argument routine to a fixed argument routine
JPH0926884A (ja) バイナリ操作を必要とするタスク中に必要なフロー情報を使用可能とする方法および装置
JP4462676B2 (ja) プログラム変換装置、コンパイラ装置およびプログラム変換プログラムを記録したコンピュータ読み取り可能な記録媒体
US20020199177A1 (en) Compiler device and compile program
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
JPH0522272B2 (ja)
JP2008015665A (ja) プログラム解析方法及びプログラム解析装置
JPH11149380A (ja) コンパイラとプログラム最適化方法およびその処理プログラムを記録した記録媒体
JPH09265400A (ja) コンパイル最適化方式
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JPH10326193A (ja) インライン展開関数の最適化のためのコンパイル方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040318

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140402

Year of fee payment: 10

EXPY Cancellation because of completion of term