JP3235462B2 - whileループ構造変換装置 - Google Patents

whileループ構造変換装置

Info

Publication number
JP3235462B2
JP3235462B2 JP11121796A JP11121796A JP3235462B2 JP 3235462 B2 JP3235462 B2 JP 3235462B2 JP 11121796 A JP11121796 A JP 11121796A JP 11121796 A JP11121796 A JP 11121796A JP 3235462 B2 JP3235462 B2 JP 3235462B2
Authority
JP
Japan
Prior art keywords
loop
expression
control variable
update
repetition
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
JP11121796A
Other languages
English (en)
Other versions
JPH09282171A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP11121796A priority Critical patent/JP3235462B2/ja
Publication of JPH09282171A publication Critical patent/JPH09282171A/ja
Application granted granted Critical
Publication of JP3235462B2 publication Critical patent/JP3235462B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、C言語で記述され
た繰り返し数の計算が困難なwhileループを、繰り
返し数が容易に計算できるforループに変換するwh
ileループ構造変換装置に関する。
【0002】
【従来の技術】ループ構造に対してベクトル化等の並列
化を行うことにより処理速度を高速化するということは
従来から行われている。ところで、ループを並列化する
場合には、ループの入口点に於いてループの繰り返し数
を求めておくことが必要であり、従来は次のようにして
ループの繰り返し数を求めるようにしている。
【0003】例えば、ループがFORTRAN言語のD
Oループの場合は、ループの制御変数が存在し、更に、
制御変数の初期値,終値,増分値が記述されているた
め、繰り返し数=(終値−初期値+増分値)/増分値な
る演算を行うことにより、容易にループの繰り返し数を
求めることができる。
【0004】また、明確なループ制御変数を用いなくて
も記述可能なC言語のforループの場合は、forル
ープに与えられた第1式(初期化式),第2式(繰り返
し条件式),第3式(増分式)の3つの式から、ループ
の制御変数と、その初期値,終値,増分値とを求め、そ
れらに基づいて上記したと同様の演算を行うことにより
ループの繰り返し数を求めている(例えば、特開平5−
303499号公報)。
【0005】
【発明が解決しようとする課題】一方、C言語で記述さ
れたwhileループには、forループの第1式,第
3式に相当する式がなく、第2式に相当する繰り返し条
件式のみが存在している。そのため、whileループ
に於いては、forループのように制御変数及びその初
期値,終値,増分値を確定することができず、ループの
繰り返し数が求められなかった。従って、whileル
ープについては、従来、ベクトル化等の並列化を行うこ
とが困難であった。
【0006】そこで、本発明の目的は、C言語で記述さ
れたwhileループをループ繰り返し数を求めること
が可能なforループに変換することにより、whil
eループに対してもベクトル化等の並列化を行えるよう
にすることにある。
【0007】
【課題を解決するための手段】本発明は上記目的を達成
するため、ソースファイルからwhileループを抽出
するループ構造解析部と、該ループ構造解析部が抽出し
たwhileループを、初期化式と繰り返し条件式と増
分式と前記whileループ中の制御変数に対する更新
式と対応する更新式とを含むforループであって、前
記初期化式として前記whileループの制御変数がル
ープに入る直前に保持していた値を、前記whileル
ープの制御変数とは異なる前記forループの制御変数
の初期値にする式を含み、前記繰り返し条件式として前
記forループの制御変数が前記whileループの繰
り返し条件式によって定まる終値に達したか否かを判定
する式を含み、前記増分式として前記whileループ
中に制御変数に対する更新式が複数含まれている場合
は、該複数の更新式それぞれに於ける、制御変数を増加
或いは減少させる値の合計値だけ前記forループの制
御変数を増加或いは減少させる式を含み、前記whil
eループ中の制御変数に対する更新式と対応する更新式
として前記whileループの制御変数を前記forル
ープの制御変数のインダクション変数とする式を含むf
orループに変換するループ構造変換部とを備えたもの
である。
【0008】上記構成に於いては、ループ構造解析部
が、ソースファイルからwhileループを抽出し、ル
ープ構造変換部が、上記whileループを、初期化式
と繰り返し条件式と増分式とwhileループ中の制御
変数に対する更新式と対応する更新式とを含むforル
ープに変換する。
【0009】また、本発明は、変換後のforループに
対してベクトル化等の並列化を行うことができない場合
であっても、元のwhileループをそのままスカラで
実行するより処理を高速に行えるようにするため、前記
ループ構造変換部は、前記whileループ中のループ
内不変式を前記forループの直前に組み込む構成を備
えたものである。
【0010】上記構成に於いては、ループ構造変換部
が、whileループ中のループ内不変式をforルー
プの直前に組み込む。
【0011】
【発明の実施の形態】次に本発明の実施の形態について
図1を参照して詳細に説明する。
【0012】ループ構造変換装置1内のループ構造解析
部11は、ソースファイル2を読み込み、whileル
ープ21の記述を探す。whileループ21の記述を
探し出すと、ループ構造解析部11は、それを変換対象
として繰り返し条件判定部12に渡す。whileルー
プ以外の記述は、そのまま、中間ファイル3に書き出
す。
【0013】繰り返し条件判定部12は、whileル
ープ21の繰り返し条件式211が比較識別子を含むか
否かを、即ち図2に示す繰り返し条件式のパターンに合
致するかどうかを試験する。条件式の左辺及び右辺の式
は、変数,定数同士の演算から構成され、関数が含まれ
ていてはならない。もし、繰り返し条件式211が図2
に示すパターンに合致していなかったり、関数を含んで
いるならwhileループ21は、変換対象からはずさ
れ、元の形のままの形で中間ファイル3に書き出され
る。
【0014】制御変数抽出部13は、繰り返し条件判定
部12に於いて繰り返し条件のパターンに合致するとみ
なされた繰り返し条件式211の中からループの制御変
数を探し出す。制御変数は、ループの繰り返し毎に一定
値ずつ単調増加或いは単調減少しなくてはならない。逆
に、制御変数以外の変数に関しては、ループ内で常に一
定の値を保たねばならない。よって、繰り返し条件式2
11中の、左辺及び右辺の式中に現れる変数の内、ルー
プ内で更新されるものがただ1つである時、それが制御
変数となる可能性がある。
【0015】制御変数抽出部13では、繰り返し条件式
211中に現れる変数のそれぞれについて、ループ内で
更新があるかどうかについて調べ、ただ1つの変数のみ
がループ内で更新されており、それ以外の変数について
は、ループ内で更新されることがない場合のみ、この変
数を制御変数として抽出する。制御変数が抽出できない
場合には、このwhileループ21を変換対象のルー
プからはずし、元の形のまま中間ファイル3に書き出
す。
【0016】次に、増分式判定部14に於いて、制御変
数抽出部13が抽出した制御変数の更新式212につい
て検査を行い、更新式212が増分式であるかどうかを
試験する。更新式212が増分式であるかどうかを見極
めるために、増分式判定部14は、更新式212が図3
に示すような増分式のパターンに合致しているかどうか
を試験する。増分式中に現れるループ内不変式は、変
数,定数同士の演算で構成されるが、ループ内では常に
一定の値とならねばならない。このため、ループ内不変
式の中に変数が存在する場合、この変数は、ループ内で
更新があってはならない。また、増分式は、ループの繰
り返し毎に必ず実行されなければならない。よって、増
分式は、条件文下の実行文であってはならない。増分式
判定部14は、併せてこの条件の試験も行う。
【0017】本発明の特徴の1つとして、制御変数の更
新式がwhileループ中の複数の箇所に現れても、f
orループへの変換が可能であることが挙げられるが、
この場合、制御変数についての全ての更新式〔1〕〜更
新式〔n〕が上記した条件を満たしていなくてはならな
い。もし、上記の条件に当てはまらない制御変数の更新
式が1つでも存在する場合は、whileループ21は
変換の対象からはずされ、中間ファイル3にそのまま書
き出される。
【0018】ループ構造変換部15は、繰り返し条件判
定部12が繰り返し条件式のパターンに合致していると
判定した繰り返し条件式211と、制御変数抽出部13
が抽出した制御変数と、増分式判定部14が増分式であ
ると判定した更新式212とに基づいて、whileル
ープ21をforループ31,終値の計算式313,増
分値の計算式314に変換し、それを中間ファイル3に
書き出す。
【0019】C言語によるforループの記述は、FO
RTRAN言語のDOループに比べて記述の自由度が高
く、DOループのように制御変数の値域によってループ
が繰り返されるもの以外にも様々なループを記述でき
る。しかし、このようなループでは、ループの繰り返し
数が不明となり、ベクトル化,並列化といった最適化を
行えなくなってしまう。そこで、forループ31は、
DOループと同様に制御変数を用いてループを構成し、
その初期値,終値,増分値が明確になるようにする。
【0020】変換後のforループ31に用いる制御変
数は、元のwhileループとは異なるforループの
制御変数を用いる。元のwhileループに使われてい
た制御変数は、forループの制御変数のインダクショ
ン変数(ループの制御変数の、ループの繰り返し毎の増
加或いは減少に比例して増加減少する変数で、制御変数
の一次式で表される)となる。
【0021】forループに与える第1式3111,第
2式3112,第3式3113は、次のようになる。
【0022】第1式3111は、forループの制御変
数に対して初期値を与える初期化式であり、ループの入
口で1回だけ実行される。
【0023】第2式3112は、forループの繰り返
し条件式で、ループが繰り返される度に評価され、評価
結果が偽になると、ループは終了する。ここでは、fo
rループの制御変数が、終値に達したかどうかを評価す
る式を与える。
【0024】第3式3113は、forループの増分式
で、ループの繰り返し毎にforループの制御変数を一
定の値だけ増加或いは減少させる。
【0025】更に、それぞれの式について詳しく説明す
る。
【0026】第1式(初期化式)3111:
【0027】forループの制御変数に対して初期値を
与える式であり、元のwhileループに於いてループ
に入る直前でwhileループの制御変数に保持されて
いた値を初期値とするものである。つまり、第1式31
11は、下記(A)のようになる。
【0028】 forループの制御変数=whileループの制御変数 … (A)
【0029】第2式(繰り返し条件式)3112:
【0030】whileループの繰り返し条件式211
中のある制御変数を条件式の左辺に移項し、それ以外の
ループ内で一定の値をとる変数,定数を右辺に移項し、
下記(B)に示すように変形する。
【0031】 whileループ 比較条件子 ループ内不変式 … (B)
【0032】ここで、ループ内不変式は、ループの内部
で常に一定の値をとるので、ループの繰り返し毎に計算
されるのでは効率が悪い。そこで、ループ内不変式中に
変数を含む場合には、不変式のとる値を終値とし、終値
の計算式313を下記(C)に示すものとおいて、この
式をforループの前で予め計算しておく。
【0033】終値=ループ内不変式 … (C)
【0034】これにより、繰り返し条件式は、下記
(D)のように書き改められる。
【0035】 whileループの制御変数 比較条件子 終値 … (D)
【0036】更に、このwhileループの制御変数を
forループの制御変数に置き換えたものを第2式31
12とする。つまり、第2式3112は下記(E)に示
すものとなる。
【0037】 forループの制御変数 比較条件子 終値 … (E)
【0038】第3式(増分式)3113:
【0039】先ず、元のwhileループに於ける制御
変数の更新式212を、forループの制御変数を使っ
てforループに於ける更新式312に書き改める。
今、元のwhileループ中にn個の更新式212が存
在するものとし、それらは、次のようなパターンになっ
ていることが、増分式判定部14で判明している。
【0040】更新式〔1〕: whileループの制御変数=whileループの制御
変数+ループ内不変式〔1〕 更新式〔2〕: whileループの制御変数=whileループの制御
変数+ループ内不変式〔2〕 : 更新式〔n〕: whileループの制御変数=whileループの制御
変数+ループ内不変式〔n〕
【0041】これらの式は、forループの制御変数を
用いて次のように書き換えることができる。
【0042】更新式〔1〕: whileループの制御変数=forループの制御変数
+ループ内不変式〔1〕 更新式〔2〕: whileループの制御変数=forループの制御変数
+ループ内不変式〔1〕+ループ内不変式〔2〕 : 更新式〔n〕: whileループの制御変数=forループの制御変数
+ループ内不変式〔1〕+ループ内不変式〔2〕+…+
ループ内不変式〔n〕
【0043】ここで、それぞれのループ内不変式は、制
御変数以外のループ内不変の変数や、定数同士の演算か
らなる式で、ループ内で常に一定の値をとる。そこで、
各増分式の、ループ内不変式のとる値を増分値とし、n
個の増分値の計算式314をそれぞれ、 増分値〔1〕=ループ内不変式〔1〕 増分値〔2〕=増分値〔1〕+ループ内不変式〔2〕 増分値〔3〕=増分値〔2〕+ループ内不変式〔3〕 : 増分値〔n〕=増分値〔n−1〕+ループ内不変式
〔n〕 とおいて、これらの式をforループの前で予め計算し
ておく。この増分値を使って更新式を書き直すことによ
り、forループ内に於ける、元のwhileループの
制御変数の更新式312が得られる。
【0044】更新式〔1〕: whileループの制御変数=forループの制御変数
+増分値〔1〕 更新式〔2〕: whileループの制御変数=forループの制御変数
+増分値〔2〕 更新式〔3〕: whileループの制御変数=forループの制御変数
+増分値〔3〕 : 更新式〔n〕: whileループの制御変数=forループの制御変数
+増分値〔n〕
【0045】以上は、元のwhileループの制御変数
の更新式の変形である。次に、forループの制御変数
に対する増分式(第3式)3113であるが、これは、
増分値〔n〕を用いて下記(F)のように表される
【0046】 forループの制御変数=forの制御変数+増分値〔n〕 … (F)
【0047】以上で、whileループ21は、for
ループ31,終値の計算式313,増分値の計算式31
4へと変換される。
【0048】次に、本発明の実施例について説明する。
【0049】図1に於いて、ループ構造解析部11は、
読み込んだソースファイル2からwhileループの記
述を探し出す。図4はループ構造解析部11が探し出し
たwhileループ4の一例を示した図である。尚、w
hileループ以外の記述は、そのまま中間ファイル3
に書き出される。
【0050】繰り返し条件判定部12は、ループ構造解
析部11が探し出した、図4に示すwhileループ4
中の繰り返し条件式41が、図2に示した繰り返し条件
式のパターンに合致するかどうかを試験する。この例の
繰り返し条件式41は、図2のパターンに合致してい
る。
【0051】制御変数抽出部13は、繰り返し条件式4
1中に現れる変数の中から、制御変数となるものを探し
出す。この例の場合、繰り返し条件式41中に現れる変
数は、i,j,kの3つである。この内、ループの中で
更新されているものがただ1つであれば、その変数が制
御変数となる可能性がある。ここで、制御変数抽出部1
3は、変数iが唯一ループ内で更新されており、変数
j,kの更新は無いことから、変数iを制御変数として
抽出する。
【0052】次に増分式判定部14に於いて、変数iの
更新式421,422,423が増分式であるかどうか
を試験する。これらの更新式は、図3に示す増分式のパ
ターンに合致してしなければならない。また、更新式中
に現れるループ内不変式は変数,定数同士の演算で構成
されるが、ループ内では常に一定の値とならねばならな
い。ループ内の3箇所に現れる更新式421,422,
423中には、i以外にもm,nの2つの変数が存在す
るが、これら2つの変数m,nは、ループ内部で更新さ
れることはなく、常に一定の値をとる。このため、3つ
の更新式421,422,423は、どれも図3の増分
式のパターンに合致しており、増分式である。
【0053】ループ構造変換部15は、図4のwhil
eループ4を図5のforループ5,終値の計算式5
3,増分値の計算式541,542,543に変換す
る。forループ5には、whileループ4の制御変
数iとは異なったforループ用の制御変数を用いる。
ここでは、そのforループ用の制御変数をINDXと
する。forループ5に与える第1式511,第2式5
12,第3式513はそれぞれ次のように導かれる。
【0054】第1式(初期化式)511:
【0055】forループの制御変数INDXを初期化
する式で、元のwhileループの入口に於ける変数i
の値を制御変数INDXに与える。従って、forルー
プの第1式511は、下記(G)に示すものとなる。
【0056】INDX=i … (G)
【0057】第2式(繰り返し条件式)512:
【0058】図4のwhileループ4の繰り返し条件
式41は、 3+k>j+i であり、制御変数iを繰り返し条件式の左辺に移項し、
それ以外のループ内で一定の値をとる変数,定数を右辺
に集めると、 i<3+k−j となる。ここで、この繰り返し条件式の右辺の3+k−
jは、ループ内で不変式であるから、ループの外に追い
出すことができる。そこで、終値をTERMとすると、
終値の計算式53は、 TERM=3+k−j となる。この式をforループに入る直前で計算してお
く。更に、このTERMを使って、繰り返し条件式を、 i<TERM とし、このwhileループの制御変数iをforルー
プの制御変数INDXで置き換えると、 INDX<TERM が得られる。これが、forループ5の第2式512と
なる。
【0059】第3式(増分式)513:
【0060】先ず、元のwhileループ4の制御変数
の更新式421,422,423を、forループの制
御変数INDXを用いて書き直す。
【0061】元のwhileループ4には、実行される
順に、 更新式〔1〕… i=i+n+1 …(421) 更新式〔2〕… i=i+m …(422) 更新式〔3〕… i=i+1 …(423) の3つの更新式421,422,423が存在する。こ
れらをforループの制御変数INDXを使って書き直
すと、下記のようになる。
【0062】更新式〔1〕… i=INDX+n+1 更新式〔2〕… i=INDX+n+1+m 更新式〔3〕… i=INDX+n+1+m+1
【0063】ここで、それぞれの増分式のループ内不変
式を増分値としてまとめる。増分値をINCR1,IN
CR2,INCR3とすると、 増分値〔1〕… INCR1=n+1 …(541) 増分値〔2〕… INCR2=INCR1+m …(542) 増分値〔3〕… INCR3=INCR2+1 …(543) となる。これらの式541,542,543は、for
ループの直前で計算しておく。
【0064】これらの増分値を使って更新式を書き直す
と、 更新式〔1〕… i=INDX+INCR1 …(521) 更新式〔2〕… i=INDX+INCR2 …(522) 更新式〔3〕… i=INDX+INCR3 …(523) が得られる。これらの更新式が、forループ5に於け
る、元のwhileループの制御変数iの更新式52
1,522,523となる。
【0065】次に、forループ5の第3式(増分式)
であるが、その増分値は、増分値INCR3を用いて、 INDX=INDX+INCR3 …(513) となる。以上で、図4のwhileループ4は、図5の
forループ5へと変換される。
【0066】この変換されたループを含む中間ファイル
3を既存のベクトル化,或いは並列化コンパイラに与え
ることによって、ループのベクトル化或いは並列化が可
能になる。
【0067】
【発明の効果】以上説明したように、本発明によれば、
次のような効果がある。
【0068】第1の効果は、繰り返し数を求めることが
困難であったwhileループをベクトル化等の並列化
の対象にすることができることである。その理由は、f
orループの繰り返し条件式に相当する式しか持たない
whileループを、初期化式,繰り返し条件式,増分
式を含み、従来の技術で繰り返し数を求めることができ
るforループに変換するループ構造変換部を備えてい
るからである。
【0069】第2の効果は、ループ内の複数箇所に制御
変数を更新する更新式が組み込まれているwhileル
ープであっても、ベクトル化等の並列化の対象にするこ
とができることである。その理由は、forループの増
分式を、whileループ中に制御変数に対する更新式
が複数含まれている場合は、上記複数の更新式それぞれ
に於ける、制御変数を増加或いは減少させる値の合計値
だけforループの制御変数を増加或いは減少させる式
としたからである。
【0070】第3の効果は、仮に変換対象となるwhi
leループが、その実行文中にベクトル化等の並列化に
不向きな実行文を含むものであり、forループに変換
しても上記実行文のためにベクトル化等が不可能であ
り、スカラでしか実行できないものであったとしても、
元のwhileループのままスラカで実行するより高速
に実行されることである。その理由は、元のwhile
ループに於けるループ内不変式をforループの直前に
組み込むようにしており、forループ中の繰り返し条
件式や増分式が、元のwhileループより簡潔なもの
になるためであり、たとえ、forループをスカラによ
り実行しなくてはならない場合であっても元のwhil
eループをスラカにより実行する場合よりも高速にな
る。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】繰り返し条件式のパターンを示す図である。
【図3】増分式のパターンを示す図である。
【図4】whileループの一例を示す図である。
【図5】変換後のforループの一例を示す図である。
【符号の説明】
1…ループ構造変換装置 11…ループ構造解析部 12…繰り返し条件判定部 13…制御変数抽出部 14…増分式判定部 15…ループ構造変換部 2…ソースファイル 21…whileループ 211…繰り返し条件式 212…更新式 3…中間ファイル 31…forループ 3111…第1式(初期化式) 3112…第2式(繰り返し条件式) 3113…第3式(増分式) 312…更新式 313…終値の計算式 314…増分値の計算式 4…whileループ 41…繰り返し条件式 421,422,423…更新式 5…forループ 511…第1式(初期化式) 512…第2式(繰り返し条件式) 513…第3式(増分式) 521,522,523…更新式 53…終値の計算式 541,542,543…終値の計算式
フロントページの続き (56)参考文献 特開 平7−141328(JP,A) 特開 平5−303499(JP,A) 特開 平5−189244(JP,A) 特開 平4−215132(JP,A) R.Allen他,”Compili ng C for Vectoriza tion,Parallelizati on,and Inline Expa nsion”,ACM SIGPLAN Notices,1988,Vol.23, No.7,p241−249 情報処理学会第45回(平成4年後期) 全国大会講演論文集,p.5−51〜5− 52 (58)調査した分野(Int.Cl.7,DB名) G06F 9/45

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 ソースファイルからwhileループを
    抽出するループ構造解析部と、 該ループ構造解析部が抽出したwhileループを、初
    期化式と繰り返し条件式と増分式と前記whileルー
    プ中の制御変数に対する更新式と対応する更新式とを含
    むforループであって、前記初期化式として前記wh
    ileループの制御変数がループに入る直前に保持して
    いた値を、前記whileループの制御変数とは異なる
    前記forループの制御変数の初期値にする式を含み、
    前記繰り返し条件式として前記forループの制御変数
    が前記whileループの繰り返し条件式によって定ま
    る終値に達したか否かを判定する式を含み、前記増分式
    として前記whileループ中に制御変数に対する更新
    式が複数含まれている場合は、該複数の更新式それぞれ
    に於ける、制御変数を増加或いは減少させる値の合計値
    だけ前記forループの制御変数を増加或いは減少させ
    る式を含み、前記whileループ中の制御変数に対す
    る更新式と対応する更新式として前記whileループ
    の制御変数を前記forループの制御変数のインダクシ
    ョン変数とする式を含むforループに変換するループ
    構造変換部とを備えたことを特徴とするwhileルー
    プ構造変換装置。
  2. 【請求項2】 前記ループ構造変換部は、前記whil
    eループ中のループ内不変式を前記forループの直前
    に組み込む構成を備えたことを特徴とする請求項1記載
    のwhileループ構造変換装置。
  3. 【請求項3】 前記ループ構造解析部が抽出したwhi
    leループ中の繰り返し条件式に比較条件子が含まれて
    いるか否かを判定する繰り返し条件判定部と、 該繰り返し条件判定部で比較条件子が含まれていると判
    定された繰り返し条件式から前記whileループ制御
    変数を抽出する制御変数抽出部と、 該制御変数抽出部が抽出したwhileループの制御変
    数に対する全ての更新式が増分式のパターンに合致する
    か否かを判定する増分式判定部とを備え、 前記ループ構造変換部は、前記増分式判定部で全ての更
    新式が増分式のパターンに合致すると判定されたwhi
    leループのみを処理対象にする構成を備えたことを特
    徴とする請求項2記載のwhileループ構造変換装
    置。
JP11121796A 1996-04-08 1996-04-08 whileループ構造変換装置 Expired - Fee Related JP3235462B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11121796A JP3235462B2 (ja) 1996-04-08 1996-04-08 whileループ構造変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11121796A JP3235462B2 (ja) 1996-04-08 1996-04-08 whileループ構造変換装置

Publications (2)

Publication Number Publication Date
JPH09282171A JPH09282171A (ja) 1997-10-31
JP3235462B2 true JP3235462B2 (ja) 2001-12-04

Family

ID=14555503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11121796A Expired - Fee Related JP3235462B2 (ja) 1996-04-08 1996-04-08 whileループ構造変換装置

Country Status (1)

Country Link
JP (1) JP3235462B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5038760B2 (ja) * 2007-03-28 2012-10-03 株式会社東芝 ソースコード変換装置及びソースコード変換方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R.Allen他,"Compiling C for Vectorization,Parallelization,and Inline Expansion",ACM SIGPLAN Notices,1988,Vol.23,No.7,p241−249
情報処理学会第45回(平成4年後期)全国大会講演論文集,p.5−51〜5−52

Also Published As

Publication number Publication date
JPH09282171A (ja) 1997-10-31

Similar Documents

Publication Publication Date Title
EP0533813B1 (en) Method for representing scalar data dependencies for an optimizing compiler
Wang et al. Bmat-a binary matching tool for stale profile propagation
Balazinska et al. Advanced clone-analysis to support object-oriented system refactoring
US4773007A (en) Complier code optimization method for a source program having a first and second array definition and use statements in a loop
EP0669574A2 (en) Program transformation processing system and method
US5109331A (en) Compiling a source program by analyzing a subscript of an array included in a loop processing of a computer
JPH0814817B2 (ja) 自動ベクトル化方法
US5067068A (en) Method for converting an iterative loop of a source program into parellelly executable object program portions
US5790859A (en) Method of, system for, and computer program product for efficient identification of private variables in program loops by an optimizing compiler
JP2004288163A (ja) 代入ステートメントのリダクション変数の検出方法、システムおよびプログラム製品
CN112948828A (zh) 一种二进制程序恶意代码检测方法、终端设备及存储介质
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
US6282704B1 (en) Method for analyzing array summary for loop including loop exit statement
JP3235462B2 (ja) whileループ構造変換装置
Arutunian et al. A method to evaluate binary code comparison tools
CN114969446B (zh) 一种基于敏感度模型的分组混合精度配置方案搜索方法
US9274929B2 (en) Constraint derivation in context following for use with object code insertion
JP3032030B2 (ja) ループ最適化方法及び装置
JP3028821B2 (ja) 並列化コンパイル方法
EP0423597A2 (en) Cross iteration common sub-expression elimination
JP3311774B2 (ja) コンパイラ装置
JP2801193B2 (ja) インダクション変数のベクトル化処理装置
JP3311775B2 (ja) ポインタベクトル化方式
US20020038452A1 (en) Constant bit folding and propagation
JPS6367676A (ja) 一般ル−プベクトル化処理方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080928

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080928

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090928

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090928

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees