JP3887097B2 - コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体 - Google Patents

コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体 Download PDF

Info

Publication number
JP3887097B2
JP3887097B2 JP04242298A JP4242298A JP3887097B2 JP 3887097 B2 JP3887097 B2 JP 3887097B2 JP 04242298 A JP04242298 A JP 04242298A JP 4242298 A JP4242298 A JP 4242298A JP 3887097 B2 JP3887097 B2 JP 3887097B2
Authority
JP
Japan
Prior art keywords
loop
instruction
mask
compiling
data
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
JP04242298A
Other languages
English (en)
Other versions
JPH11242598A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP04242298A priority Critical patent/JP3887097B2/ja
Publication of JPH11242598A publication Critical patent/JPH11242598A/ja
Application granted granted Critical
Publication of JP3887097B2 publication Critical patent/JP3887097B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル方法およびコンパイル装置や、当該変換のためのコンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体に関する。
【0002】
本明細書では、マスクデ−タ生成命令を「マスク生成命令」と略記し、複数の命令からなる命令列も含む意で「命令」の用語を用いる。
【0003】
ベクトル処理方式の計算機では、例えば多重ル−プの一重化や並立ル−プの融合化などの場合にマスクデ−タ付きのベクトル演算を実行している。このベクトル演算の実効性を確保するためには、マスクデ−タの準備処理に時間を要しないことが必要であり、本発明はこのような要請に応えるものである。
【0004】
【従来の技術】
図14は、従来の、マスク付き一重化のコンパイル処理の概要を示す説明図であり、(a) は前提のソ−スプログラム形式、(b) はコンパイル内容(ソ−スイメ−ジ)を示している。
【0005】
ソ−スプログラムは、(100×100)の計10000個の要素からなる配列A、Bそれぞれの(2,2)の要素から(99,99)の要素までの計9604個の各要素同士を乗算するものある。
【0006】
図15は、図14(b) のコンパイル内容に対応の処理手順を示す説明図であり、その内容は次のようになっている。
(61)マスクデ−タを示す配列maskを作る。
(62)回転数が(100×100)の一重ル−プを作り、配列maskのすべての要素に偽値(0)を設定する命令を出力する。
(63)元の二重ル−プと同じ構造の二重ル−プを作り、その中で配列maskの必要な要素にだけ真値(1)を設定する命令を出力する。
(64)元の二重ル−プを一重ル−プ構造に変換する。このときの回転数は(100×100)である。
(65)元の二重ル−プ中の実行文が、配列要素それぞれに対応する配列maskの値が真値(1)のときのみ実行されるようにIF文(に対応の命令)を挿入する。
【0007】
図16は、図14(b) のコンパイル内容に対応の命令イメ−ジを示す説明図であり、
・71はステップ(61),(62) に対応し、
・72はステップ(63)に対応し、
・73はステップ(64),(65) に対応している。
【0008】
【発明が解決しようとする課題】
このように、従来のマスクデ−タ付きのベクトル処理方式の場合、ル−プ処理を実行することによりマスクデ−タを準備しているので、マスクデ−タ作成のための要処理時間が長くなりマスクデ−タ付きのベクトル演算を効率的に行なえないという問題点があった。
【0009】
そこで、本発明では、ハ−ドウェアが直接実行可能なマスクデ−タ作成用の機械命令を設け、このマスク作成命令を用いてコンパイルし、またオブジェクトプログラム中のマスク作成命令を実行することにより、ル−プ一重化やル−プ融合化にともなうマスクデ−タ付きのベクトル演算処理の高速化を図ることを目的とする。
【0010】
また、このマスク作成命令をル−プ融合化に適用する場合、ル−プ融合化後のプログラム中の共通式の削除や命令スケジュ−リングなどの最適化を行なうことにより、ベクトル計算機の実効性能を一段と向上させることを目的とする。
【0011】
【課題を解決するための手段】
本発明は、この課題を、次のコンパイル方法,コンパイル装置およびコンピュータ読み取り可能な記憶媒体を用いることにより解決する。
(1)コンパイル装置が、コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル方法において、
前記コンパイル装置は、そのループ認識部により、前記ソースプログラムから前記ループ処理部分を抽出し、
前記コンパイル装置は、そのマスク生成命令出力部により、前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第1のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第2のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する、
ことを特徴とするコンパイル方法
(2)コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル装置において、
前記ソースプログラムから前記ループ処理部分を抽出するループ認識部と、
前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第1のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第2のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成するマスク生成命令出力部と、
を有することを特徴とするコンパイル装置
(3)ソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するため、コンピュータに、
前記ソースプログラムから前記ループ処理部分を抽出する機能と、
抽出された前記ループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第1のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第2のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する機能と、
を実現させるためのコンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
【0012】
マスク生成命令vgsmは、
・多重ル−プの一重化処理
・並立ル−プの融合化処理
などをともなうベクトル演算部分のコンパイルのときに出力される。
【0013】
マスク生成命令vgsmを出力するコンパイル装置は、ベクトル演算命令を出力するベクトル化部と、マスク生成命令出力部とを少なくとも備え、
・多重ル−プ処理をマスクデ−タ付の一重ル−プ処理に変更したかたちのル−プ演算命令を出力するマスク付き一重化実施部
・並立ル−プ処理を融合して最適化したかたちのル−プ演算命令を出力するマスク付き融合化実施部
なども併せ持っている。
【0014】
また、本発明では、マスク生成命令vgsmを実行してマスクデ−タを作成するオブジェクトプログラム実行方法や、実行マスク生成命令vgsmの実行主体であるマスクデ−タ作成部を少なくとも備え、オブジェクトプログラム中のマスク生成命令に基づいてマスクデ−タ付きのベクトル演算を行なうオブジェクトプログラム実行装置を用いている。
【0016】
このようなマスク生成命令vgsmを利用しているので、例えばコンパイルによりマスク付き一重化やマスク付き融合化などの処理が行なわれたプログラムの実行時には、マスクデ−タの作成時間が短縮され、プログラム全体の処理時間が高速化される。
【0017】
マスク生成命令vgsmのル−プ融合化への適用時には、ベクトル長が長くなるだけでなく、命令スケジュ−リングの対象範囲が広くなったり、同じ配列からのロ−ドを共通化して比較的低速なメモリアクセスを減らす、などの更なる最適化が期待できる。
【0018】
【発明の実施の形態】
図1乃至図13を参照して本発明の実施の形態を説明する。なお、以下の実施の形態では、説明の便宜上、対象数列の先頭位置を「1」番目と表現する。
【0019】
図1は、マスク生成命令を示す説明図である。
マスク生成命令vgsm(vector generate subarray mask)は、ハ−ドウェアが直接実行可能な機械命令であって、
・gr1(汎用レジスタ)の値の個数の偽値(例えば0)が連続し、その後に真値(例えば1)が続いて、
・gr2(汎用レジスタ)の値の合計個数からなる基本パタ−ン1を繰り返した数列の中、
・gr3(汎用レジスタ)の値が示す位置から始まるベクトル長(アクセスされる範囲の長さ)分の数列部分をマスクレジスタmrに設定する、
ことを命令内容としている。基本パタ−ン1を、所定個数の真値とこれに続く所定個数の偽値とからなる数列にしてもよい。
【0020】
図2は、ル−プ一重化におけるマスク生成命令の概念を示す説明図であり、図14と同様のソ−スプログラム形式を前提にしている。
【0021】
配列Aは(M*N)個の要素からなり、2の斜線部分はル−プ処理対象部分で(I2−I1+1)*(J2−J1+1)個の要素からなっている。
また、3は基本パタ−ン1の開始位置に対応の要素、4はgr1の指定位置に対応の要素、5はgr3の指定位置に対応の要素、6はgr2の指定位置でかつ要素基本パタ−ン1の最終位置に対応の要素、7は要素5からベクトル長分だけ後続の要素を示している。
【0022】
図2のマスク生成命令vgsmの場合、
・ベクトル長は、要素5(I1,J1)から要素7(I2,J2)までの実線部分の要素数〔M*(J2−J1+1)−(I1−1)−(M−I2)〕
・gr1の値は、要素3(I2+1,J1−1)から要素4(I1−1,J1)までの要素数〔(M−I2)+(I1−1)〕
・gr2の値は、要素3(I2+1,J1−1)から要素6(I2,J1)までの要素数M
・gr3の値は、要素3(I2+1,J1−1)から要素5(I1,J1)までの要素数〔(M−I2)+I1〕
となる。
【0023】
すなわち、要素3から要素4までに対応の偽値と、これに続く要素5から要素6までに対応の真値とからなる基本パターンを繰り返した数列の、要素5から要素7までに対応の数列部分をマスクデ−タとして生成する旨の命令である。
【0024】
図3は、図2の二重ル−プに対するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(11)ベクトル長を〔M*(J2−J1+1)−(I1−1)−(M−I2)〕とする命令を出力する。
(12)vgsm命令のgr1に対して〔(M−I2)+(I1−1)〕を設定する命令を出力する。
(13)vgsm命令のgr2に対してMを設定する命令を出力する。
(14)vgsm命令のgr3に対して〔(M−I2)+I1〕を設定する命令を出力する。
(15)vgsm命令を出力する。
(16)ル−プ内の命令すべてのオペランドにmr(の値)を追加する。vgsm命令で生成されたmr(の値)をマスクデ−タとして使うためである。
(17)二重ル−プ構造を一重ル−プ構造に変換する。変換後の一次元配列の処理開始位置は元の要素5の位置とし、変換後のル−プ構造は下記のIF文を挿入したかたちに対応している(図4参照)。
(18)ベクトル化によってベクトル命令を出力する。
【数1】
Figure 0003887097
【0025】
図4は、vgsm命令を使ったル−プ一重化の例を示す説明図であり、(a) は前提のソ−スプログラム形式、(b) は命令イメ−ジのコンパイル出力を示している。
【0026】
これは、図2において、
・M=100
・N=100
・I1=2,12=99
・J1=2,J2=99
とした場合である。
【0027】
図5は、ル−プ一重化時のコンパイラの構成図であり、11はソ−スプログラム、12はコンパイラ(コンパイル装置)、13はオブジェクトプログラム、14はソ−スプログラム解析部、15はル−プ一重化部、16はマスク付き一重化認識部、17はマスク生成命令出力部、18はマスク付き一重化実施部、19はベクトル化部、20はオブジェクトプログラム生成部をそれぞれ示している。
【0028】
ソ−スプログラム解析部14はソ−スプログラム11を中間テキストに変換し、マスク付き一重化認識部16はその中の命令の種類やオペランドのかたちをみてマスク付き一重化が可能なル−プを取り出している。
【0029】
マスク生成命令出力部17は図3のステップ(11)乃至(15)の処理を実行し、また、マスク付き一重化実施部18は図3のステップ(16),(17)の処理を実行している。ベクトル化部19およびオブジェクトプログラム生成部20の作用は従来のものと同様である。
【0030】
図6は、ル−プ一重化に関するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(21)コンパイル対象のル−プを取り出して、次のステップに進む。
(22)多重ル−プの構造をしているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(25)に進む。
(23)マスク付き一重化が可能であるかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(25)に進む。
(24)マスク生成命令を出力した上でマスク付き一重化を実行して、次のステップに進む。
(25)通常のベクトル化を実行して、次のステップに進む。
(26)すべてのル−プについての処理が終了したかどうかを判断し、「YES 」の場合は一連の処理を終了し、「NO」の場合はステップ(21)に戻る。
【0031】
図7は、ル−プ融合化の説明の前提として用いるソ−スプログラム形式を示す説明図である。
説明の便宜上、各ル−プの処理対象要素範囲が他ル−プの処理対象要素範囲に完全に包含されない、すなわち「I3<I1<I4<I2」または「I1<I3<I2<I4」が成り立つとする。
【0032】
ソ−スプログラム例は、1000個の要素からなる各配列A、Bに対し、
・101乃至1000(I1乃至I2)の各要素の乗算を実行するル−プ
・1乃至900(I3乃至I4)の各要素の加算を実行するル−プ
の二つの並立ル−プを有している。
【0033】
図8は、図7の並立ル−プに対するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(31)通常のベクトル化を実行する。
(32)ベクトル長VLを〔MAX(I2,I4)−MIN(I1,I3)+1〕とする命令を出力する。
(33)vgsm命令のgr1に対して〔VL−(I2−I1+1)〕を設定する命令を出力する。
(34)vgsm命令のgr2に対してVLを設定する命令を出力する。
(35)vgsm命令のgr3に対して〔1:(I1>I3のとき)〕または〔(I4−12+1):(I1<I3のとき)〕を設定する命令を出力する。
(36)vgsm命令を出力する。
(37)vgsm命令のgr1に対して〔VL−(I4−I3+1)〕を設定する命令を出力する。
(38)vgsm命令のgr2に対してVLを設定する命令を出力する。
(39)vgsm命令のgr3に対して〔(I2−14+1):(I1>I3のとき)〕または〔1:(I1<I3のとき)〕を設定する命令を出力する。
(40)vgsm命令を出力する。
(41)一つ目のル−プ内の命令すべてのオペランドに、ステップ(36)のvgsm命令で生成されたmr1(の値)を追加する。mr1をマスクデ−タとして使うためである。
(42)二つ目のル−プ内の命令すべてのオペランドに、ステップ(40)のvgsm命令で生成されたmr2(の値)を追加する。mr2をマスクデ−タとして使うためである。
(43)並立ル−プ構造を単一ル−プ構造に変換する。新しいル−プの初期値はMIN(I1,I3)、終値はMAX(I2,I4)とし、変換後のル−プ構造は下記のIF文を挿入したかたちに対応している。
(44)共通式の削除や命令スケジュ−リングなどの最適化を実行する。
【数2】
Figure 0003887097
【0034】
図9は、vgsm命令を使ったル−プ融合化の例を示す説明図であり、通常のベクトル化後、vgsm命令を使ったル−プ融合後、および最適化後のそれぞれの場合における命令イメ−ジのコンパイル出力を示している。各命令の内容は図4のそれと同様である。
【0035】
ここで、
・101乃至1000の各要素の乗算処理ル−プに対しては「gr1=100,gr2=1000、gr3=1」のvgsm命令(mr1)を使い、
・1乃至900の各要素の加算処理ル−プに対しては「gr1=100,gr2=1000、gr3=101」のvgsm命令(mr2)を使っている。
【0036】
この場合、mr1とmr2のvgsm命令出力の段階でもそれぞれのgr1およびgr2の最適化を実行している。
【0037】
ル−プ融合後の最適化では、
・配列Bをベクトルレジスタvrに格納する二つのvload命令の一つを削除し、
・配列Cをベクトルレジスタvrに格納する二つのvload命令の一つを削除し、
・乗算命令vmult、加算命令vadd、および乗算結果の保持命令vstoreの順序を変更している。
【0038】
なお、保持命令vstoreにmrを付加してマスクデ−タ付き命令とする場合、その前の乗算命令vmultや加算命令vaddにこれを付加するかどうかは任意である。
【0039】
図10は、ル−プ融合化時のコンパイラの構成図であり、21はソ−スプログラム、22はコンパイラ(コンパイル装置)、23はオブジェクトプログラム、24はソ−スプログラム解析部、25はベクトル化部、26はル−プ融合化部、27はマスク付き融合化認識部、28はマスク生成命令出力部、29はマスク付き融合化実施部、30は最適化部、31はオブジェクトプログラム生成部をそれぞれ示している。
【0040】
ソ−スプログラム解析部24はソ−スプログラム21を中間テキストに変換し、マスク付き融合化認識部27はその中の命令の種類やオペランドのかたちをみてマスク付き融合化が可能なル−プを取り出している。
【0041】
マスク生成命令出力部28は図8のステップ(33)乃至(40)の処理を実行し、マスク付き融合化実施部29は図8のステップ(41)乃至(43)の処理を実行し、また、最適化部30は図8のステップ(44)の処理を実行している。ベクトル化部25およびオブジェクトプログラム生成部31の作用は従来のものと同様である。
【0042】
図11は、ル−プ融合化に関するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(51)コンパイル対象のル−プを取り出して、次のステップに進む。
(52)ベクトル化を実行して、次のステップに進む。
(53)並立ル−プの構造をしているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(57)に進む。
(54)マスク付き融合化が可能であるかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(57)に進む。
(55)マスク生成命令を出力した上でマスク付き融合化を実行して、次のステップに進む。
(56)ル−プ融合後の共通式の削除や命令スケジュ−リングなどの最適化を実行して、次のステップに進む。
(57)すべてのル−プについての処理が終了したかどうかを判断し、「YES 」の場合は一連の処理を終了し、「NO」の場合はステップ(51)に戻る。
【0043】
図12は、マスク生成命令を実行するオブジェクトプログラム実行装置を示す説明図であり、41はオブジェクトプログラム、42はオブジェクトプログラム実行装置、43は各種命令や演算用デ−タなどを保持する記憶部、44はマスク生成命令(vgsm)を実行してマスクデ−タを出力するマスクデ−タ作成部、45はマスクデ−タ付きのベクトル演算を実行するベクトル演算部、46はレジスタなどのベクトル演算結果保持部をそれぞれ示している。
【0044】
図13は、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図であり、51はコンピュ−タシステム、52はCPUやディスクドライブ装置などを内蔵した本体部、53は本体部52からの指示により画像を表示するディスプレイ、54は表示画面、55はコンピュ−タシステム51に種々の情報を入力するためのキ−ボ−ド、56は表示画面54上の任意の位置を指定するマウス、57は外部のデ−タベ−ス(DASDなどの回線先メモリ)、58は外部のデ−タベ−ス57にアクセスするモデム、59はCD−ROMやフロッピ−ディスクなどの可搬型記憶媒体をそれぞれ示している。
【0045】
プログラムを格納する記憶媒体としては、
・プログラム提供者側のデ−タベ−ス57(回線先メモリ)
・可搬型記憶媒体59
・本体部52側のメモリ
などのいずれでもよく、当該プログラムは本体部52にロ−デイングされてその主メモリ上で実行される。
【0046】
【発明の効果】
本発明は、このようなマスク作成命令vgsmを用いてコンパイルし、またオブジェクトプログラム中のマスク作成命令を実行しているので、ル−プ一重化やル−プ融合化にともなうマスクデ−タ付きのベクトル演算処理の高速化を図ることができる。
【0047】
また、このマスク作成命令をル−プ融合化に適用するときには、ル−プ融合化後のプログラム中の共通式の削除や命令スケジュ−リングなどの最適化を行なうことにより、ベクトル計算機の実効性能を一段と向上させることができる。
【図面の簡単な説明】
【図1】本発明の、マスク生成命令を示す説明図である。
【図2】本発明の、ル−プ一重化におけるマスク生成命令の概念を示す説明図である。
【図3】図2の二重ル−プに対するコンパイル手順の概要を示す説明図である。
【図4】本発明の、vgsm命令を使ったル−プ一重化の例を示す説明図である。
【図5】本発明の、ル−プ一重化時のコンパイラの構成図である。
【図6】本発明の、ル−プ一重化に関するコンパイル手順の概要を示す説明図である。
【図7】本発明の、ル−プ融合化の説明の前提として用いるソ−スプログラム形式を示す説明図である。
【図8】図7の並立ル−プに対するコンパイル手順の概要を示す説明図である。
【図9】本発明の、vgsm命令を使ったル−プ融合化の例を示す説明図である。
【図10】本発明の、ル−プ融合化時のコンパイラの構成図である。
【図11】本発明の、ル−プ融合化に関するコンパイル手順の概要を示す説明図である。
【図12】本発明の、マスク生成命令を実行するオブジェクトプログラム実行装置を示す説明図である。
【図13】本発明の、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図である。
【図14】従来の、マスク付き一重化のコンパイル処理の概要を示す説明図である。
【図15】図14(b) のコンパイル内容に対応の処理手順を示す説す説明図である。
【図16】図14(b) のコンパイル内容に対応の命令イメ−ジを示す説明図である。
【符号の説明】
図1および図2において、
1:基本パタ−ン
gr1:基本パタ−ンの偽値(0)の個数を特定する値(レジスタ)
gr2:基本パタ−ンの全体個数を特定する値(レジスタ)
gr3:マスクデ−タの始まり位置を特定する値(レジスタ)
2:ル−プ処理対象部分
3:基本パタ−ンの開始位置に対応の要素
4:gr1の指定位置に対応の要素
5:gr3の指定位置に対応の要素
6:gr2の指定位置でかつ要素基本パタ−ンの最終位置に対応の要素
7:要素5からベクトル長分だけ後続の要素

Claims (3)

  1. コンパイル装置が、コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル方法において、
    前記コンパイル装置は、そのループ認識部により、前記ソースプログラムから前記ループ処理部分を抽出し、
    前記コンパイル装置は、そのマスク生成命令出力部により、前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第1のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第2のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する、
    ことを特徴とするコンパイル方法。
  2. コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル装置において、
    前記ソースプログラムから前記ループ処理部分を抽出するループ認識部と、
    前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第1のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第2のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成するマスク生成命令出力部と、
    を有することを特徴とするコンパイル装置。
  3. ソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するため、コンピュータに、
    前記ソースプログラムから前記ループ処理部分を抽出する機能と、
    抽出された前記ループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第1のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第2のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する機能と、
    を実現させるためのコンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
JP04242298A 1998-02-24 1998-02-24 コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体 Expired - Fee Related JP3887097B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04242298A JP3887097B2 (ja) 1998-02-24 1998-02-24 コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04242298A JP3887097B2 (ja) 1998-02-24 1998-02-24 コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体

Publications (2)

Publication Number Publication Date
JPH11242598A JPH11242598A (ja) 1999-09-07
JP3887097B2 true JP3887097B2 (ja) 2007-02-28

Family

ID=12635634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04242298A Expired - Fee Related JP3887097B2 (ja) 1998-02-24 1998-02-24 コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体

Country Status (1)

Country Link
JP (1) JP3887097B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516299B2 (en) 2005-08-29 2009-04-07 International Business Machines Corporation Splat copying GPR data to vector register elements by executing lvsr or lvsl and vector subtract instructions
KR100854720B1 (ko) 2007-03-23 2008-08-27 삼성전자주식회사 루프 통합 방법 및 루프 통합 장치
JP6666554B2 (ja) 2016-05-23 2020-03-18 富士通株式会社 情報処理装置、変換プログラム、及び変換方法
WO2021166840A1 (ja) * 2020-02-17 2021-08-26 日本電気株式会社 記録媒体、コンパイル装置、処理システム及びコンパイル方法

Also Published As

Publication number Publication date
JPH11242598A (ja) 1999-09-07

Similar Documents

Publication Publication Date Title
US6113650A (en) Compiler for optimization in generating instruction sequence and compiling method
JP3032031B2 (ja) ループ最適化方法及び装置
US5822593A (en) High-level loop fusion
US20090144529A1 (en) SIMD Code Generation For Loops With Mixed Data Lengths
EP0428560A4 (en) Machine process for translating programs in binary machine language into another binary machine language
US7367026B2 (en) Framework for integrated intra- and inter-loop aggregation of contiguous memory accesses for SIMD vectorization
Burton Annotations to control parallelism and reduction order in the distributed evaluation of functional programs
JP3477137B2 (ja) 最適化装置及び最適化プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3887097B2 (ja) コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
Jagannathan Dataflow models
JP4462676B2 (ja) プログラム変換装置、コンパイラ装置およびプログラム変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP7407192B2 (ja) フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置
JP3196625B2 (ja) 並列化コンパイル方式
WO2024065868A1 (zh) 一种用于图计算并行执行的中间表示方法及装置
De Sutter et al. On the use of subword parallelism in medical image processing
JP3817073B2 (ja) メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
JP2004021425A (ja) コンパイラにおけるメモリ配置方式
JP3551352B2 (ja) ループ分割方法
JP3424597B2 (ja) 異機種間における引数、戻り値の転送方法ならびに装置
JPH0241562A (ja) ベクトル演算列分割処理方式
JPH0512752B2 (ja)
JP2870218B2 (ja) 並列実行命令列生成方式
JP3619861B2 (ja) パイプライン情報の出力方法ならびにそのための出力装置およびコンピュータ読み取り可能な記録媒体
JP3734658B2 (ja) コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060815

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061016

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: 20061121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061124

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: 20091201

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101201

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121201

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121201

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131201

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees