(57)【特許請求の範囲】
【請求項１】
コンパイル装置が、コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル方法において、
前記コンパイル装置は、そのループ認識部により、前記ソースプログラムから前記ループ処理部分を抽出し、
前記コンパイル装置は、そのマスク生成命令出力部により、前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第１のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第２のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する、
ことを特徴とするコンパイル方法。
【請求項２】
コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル装置において、
前記ソースプログラムから前記ループ処理部分を抽出するループ認識部と、
前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第１のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第２のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成するマスク生成命令出力部と、
を有することを特徴とするコンパイル装置。
【請求項３】
ソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するため、コンピュータに、
前記ソースプログラムから前記ループ処理部分を抽出する機能と、
抽出された前記ループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第１のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第２のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する機能と、
を実現させるためのコンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル方法およびコンパイル装置や、当該変換のためのコンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体に関する。
【０００２】
本明細書では、マスクデ−タ生成命令を「マスク生成命令」と略記し、複数の命令からなる命令列も含む意で「命令」の用語を用いる。
【０００３】
ベクトル処理方式の計算機では、例えば多重ル−プの一重化や並立ル−プの融合化などの場合にマスクデ−タ付きのベクトル演算を実行している。このベクトル演算の実効性を確保するためには、マスクデ−タの準備処理に時間を要しないことが必要であり、本発明はこのような要請に応えるものである。
【０００４】
【従来の技術】
図１４は、従来の、マスク付き一重化のコンパイル処理の概要を示す説明図であり、(a) は前提のソ−スプログラム形式、(b) はコンパイル内容（ソ−スイメ−ジ）を示している。
【０００５】
ソ−スプログラムは、（１００×１００）の計１００００個の要素からなる配列Ａ、Ｂそれぞれの（２，２）の要素から（９９，９９）の要素までの計９６０４個の各要素同士を乗算するものある。
【０００６】
図１５は、図１４(b) のコンパイル内容に対応の処理手順を示す説明図であり、その内容は次のようになっている。
(61)マスクデ−タを示す配列maskを作る。
(62)回転数が（１００×１００）の一重ル−プを作り、配列maskのすべての要素に偽値（０）を設定する命令を出力する。
(63)元の二重ル−プと同じ構造の二重ル−プを作り、その中で配列maskの必要な要素にだけ真値（１）を設定する命令を出力する。
(64)元の二重ル−プを一重ル−プ構造に変換する。このときの回転数は（１００×１００）である。
(65)元の二重ル−プ中の実行文が、配列要素それぞれに対応する配列maskの値が真値（１）のときのみ実行されるようにＩＦ文（に対応の命令）を挿入する。
【０００７】
図１６は、図１４(b) のコンパイル内容に対応の命令イメ−ジを示す説明図であり、
・７１はステップ(61),(62) に対応し、
・７２はステップ(63)に対応し、
・７３はステップ(64),(65) に対応している。
【０００８】
【発明が解決しようとする課題】
このように、従来のマスクデ−タ付きのベクトル処理方式の場合、ル−プ処理を実行することによりマスクデ−タを準備しているので、マスクデ−タ作成のための要処理時間が長くなりマスクデ−タ付きのベクトル演算を効率的に行なえないという問題点があった。
【０００９】
そこで、本発明では、ハ−ドウェアが直接実行可能なマスクデ−タ作成用の機械命令を設け、このマスク作成命令を用いてコンパイルし、またオブジェクトプログラム中のマスク作成命令を実行することにより、ル−プ一重化やル−プ融合化にともなうマスクデ−タ付きのベクトル演算処理の高速化を図ることを目的とする。
【００１０】
また、このマスク作成命令をル−プ融合化に適用する場合、ル−プ融合化後のプログラム中の共通式の削除や命令スケジュ−リングなどの最適化を行なうことにより、ベクトル計算機の実効性能を一段と向上させることを目的とする。
【００１１】
【課題を解決するための手段】
本発明は、この課題を、次のコンパイル方法，コンパイル装置およびコンピュータ読み取り可能な記憶媒体を用いることにより解決する。
（１）コンパイル装置が、コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル方法において、
前記コンパイル装置は、そのループ認識部により、前記ソースプログラムから前記ループ処理部分を抽出し、
前記コンパイル装置は、そのマスク生成命令出力部により、前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第１のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第２のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する、
ことを特徴とするコンパイル方法
（２）コンピュータ用のソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するコンパイル装置において、
前記ソースプログラムから前記ループ処理部分を抽出するループ認識部と、
前記ループ認識部で抽出されたループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第１のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第２のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成するマスク生成命令出力部と、
を有することを特徴とするコンパイル装置
（３）ソースプログラムに記述されたループ処理部分をベクトル演算命令に変換するため、コンピュータに、
前記ソースプログラムから前記ループ処理部分を抽出する機能と、
抽出された前記ループ処理部分のループ変数に基づいて、偽値または真値の一方を所定個数連続させた第１のデータ部分と、この後に当該偽値または当該真値の他方を所定個数連続させた第２のデータ部分と、で構成される基本パターンを反復してなるデータ列中の所定範囲を前記ベクトル演算命令のマスクデータとして設定するための、マスク生成命令を作成する機能と、
を実現させるためのコンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
【００１２】
マスク生成命令ｖｇｓｍは、
・多重ル−プの一重化処理
・並立ル−プの融合化処理
などをともなうベクトル演算部分のコンパイルのときに出力される。
【００１３】
マスク生成命令ｖｇｓｍを出力するコンパイル装置は、ベクトル演算命令を出力するベクトル化部と、マスク生成命令出力部とを少なくとも備え、
・多重ル−プ処理をマスクデ−タ付の一重ル−プ処理に変更したかたちのル−プ演算命令を出力するマスク付き一重化実施部
・並立ル−プ処理を融合して最適化したかたちのル−プ演算命令を出力するマスク付き融合化実施部
なども併せ持っている。
【００１４】
また、本発明では、マスク生成命令ｖｇｓｍを実行してマスクデ−タを作成するオブジェクトプログラム実行方法や、実行マスク生成命令ｖｇｓｍの実行主体であるマスクデ−タ作成部を少なくとも備え、オブジェクトプログラム中のマスク生成命令に基づいてマスクデ−タ付きのベクトル演算を行なうオブジェクトプログラム実行装置を用いている。
【００１６】
このようなマスク生成命令ｖｇｓｍを利用しているので、例えばコンパイルによりマスク付き一重化やマスク付き融合化などの処理が行なわれたプログラムの実行時には、マスクデ−タの作成時間が短縮され、プログラム全体の処理時間が高速化される。
【００１７】
マスク生成命令ｖｇｓｍのル−プ融合化への適用時には、ベクトル長が長くなるだけでなく、命令スケジュ−リングの対象範囲が広くなったり、同じ配列からのロ−ドを共通化して比較的低速なメモリアクセスを減らす、などの更なる最適化が期待できる。
【００１８】
【発明の実施の形態】
図１乃至図１３を参照して本発明の実施の形態を説明する。なお、以下の実施の形態では、説明の便宜上、対象数列の先頭位置を「１」番目と表現する。
【００１９】
図１は、マスク生成命令を示す説明図である。
マスク生成命令ｖｇｓｍ（vector generate subarray mask)は、ハ−ドウェアが直接実行可能な機械命令であって、
・ｇｒ１（汎用レジスタ）の値の個数の偽値（例えば０）が連続し、その後に真値（例えば１）が続いて、
・ｇｒ２（汎用レジスタ）の値の合計個数からなる基本パタ−ン１を繰り返した数列の中、
・ｇｒ３（汎用レジスタ）の値が示す位置から始まるベクトル長（アクセスされる範囲の長さ）分の数列部分をマスクレジスタｍｒに設定する、
ことを命令内容としている。基本パタ−ン１を、所定個数の真値とこれに続く所定個数の偽値とからなる数列にしてもよい。
【００２０】
図２は、ル−プ一重化におけるマスク生成命令の概念を示す説明図であり、図１４と同様のソ−スプログラム形式を前提にしている。
【００２１】
配列Ａは（Ｍ＊Ｎ）個の要素からなり、２の斜線部分はル−プ処理対象部分で（Ｉ２−Ｉ１＋１）＊（Ｊ２−Ｊ１＋１）個の要素からなっている。
また、３は基本パタ−ン１の開始位置に対応の要素、４はｇｒ１の指定位置に対応の要素、５はｇｒ３の指定位置に対応の要素、６はｇｒ２の指定位置でかつ要素基本パタ−ン１の最終位置に対応の要素、７は要素５からベクトル長分だけ後続の要素を示している。
【００２２】
図２のマスク生成命令ｖｇｓｍの場合、
・ベクトル長は、要素５（Ｉ１，Ｊ１）から要素７（Ｉ２，Ｊ２）までの実線部分の要素数〔Ｍ＊（Ｊ２−Ｊ１＋１）−（Ｉ１−１）−（Ｍ−Ｉ２）〕
・ｇｒ１の値は、要素３（Ｉ２＋１，Ｊ１−１）から要素４（Ｉ１−１，Ｊ１）までの要素数〔（Ｍ−Ｉ２）＋（Ｉ１−１）〕
・ｇｒ２の値は、要素３（Ｉ２＋１，Ｊ１−１）から要素６（Ｉ２，Ｊ１）までの要素数Ｍ
・ｇｒ３の値は、要素３（Ｉ２＋１，Ｊ１−１）から要素５（Ｉ１，Ｊ１）までの要素数〔（Ｍ−Ｉ２）＋Ｉ１〕
となる。
【００２３】
すなわち、要素３から要素４までに対応の偽値と、これに続く要素５から要素６までに対応の真値とからなる基本パターンを繰り返した数列の、要素５から要素７までに対応の数列部分をマスクデ−タとして生成する旨の命令である。
【００２４】
図３は、図２の二重ル−プに対するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(11)ベクトル長を〔Ｍ＊（Ｊ２−Ｊ１＋１）−（Ｉ１−１）−（Ｍ−Ｉ２）〕とする命令を出力する。
(12)ｖｇｓｍ命令のｇｒ１に対して〔（Ｍ−Ｉ２）＋（Ｉ１−１）〕を設定する命令を出力する。
(13)ｖｇｓｍ命令のｇｒ２に対してＭを設定する命令を出力する。
(14)ｖｇｓｍ命令のｇｒ３に対して〔（Ｍ−Ｉ２）＋Ｉ１〕を設定する命令を出力する。
(15)ｖｇｓｍ命令を出力する。
(16)ル−プ内の命令すべてのオペランドにｍｒ（の値）を追加する。ｖｇｓｍ命令で生成されたｍｒ（の値）をマスクデ−タとして使うためである。
(17)二重ル−プ構造を一重ル−プ構造に変換する。変換後の一次元配列の処理開始位置は元の要素５の位置とし、変換後のル−プ構造は下記のＩＦ文を挿入したかたちに対応している（図４参照）。
(18)ベクトル化によってベクトル命令を出力する。
【数１】
0003887097.tif 000002
【００２５】
図４は、ｖｇｓｍ命令を使ったル−プ一重化の例を示す説明図であり、(a) は前提のソ−スプログラム形式、(b) は命令イメ−ジのコンパイル出力を示している。
【００２６】
これは、図２において、
・Ｍ＝１００
・Ｎ＝１００
・Ｉ１＝２，１２＝９９
・Ｊ１＝２，Ｊ２＝９９
とした場合である。
【００２７】
図５は、ル−プ一重化時のコンパイラの構成図であり、１１はソ−スプログラム、１２はコンパイラ（コンパイル装置）、１３はオブジェクトプログラム、１４はソ−スプログラム解析部、１５はル−プ一重化部、１６はマスク付き一重化認識部、１７はマスク生成命令出力部、１８はマスク付き一重化実施部、１９はベクトル化部、２０はオブジェクトプログラム生成部をそれぞれ示している。
【００２８】
ソ−スプログラム解析部１４はソ−スプログラム１１を中間テキストに変換し、マスク付き一重化認識部１６はその中の命令の種類やオペランドのかたちをみてマスク付き一重化が可能なル−プを取り出している。
【００２９】
マスク生成命令出力部１７は図３のステップ(11)乃至(15)の処理を実行し、また、マスク付き一重化実施部１８は図３のステップ(16)，(17)の処理を実行している。ベクトル化部１９およびオブジェクトプログラム生成部２０の作用は従来のものと同様である。
【００３０】
図６は、ル−プ一重化に関するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(21)コンパイル対象のル−プを取り出して、次のステップに進む。
(22)多重ル−プの構造をしているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(25)に進む。
(23)マスク付き一重化が可能であるかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(25)に進む。
(24)マスク生成命令を出力した上でマスク付き一重化を実行して、次のステップに進む。
(25)通常のベクトル化を実行して、次のステップに進む。
(26)すべてのル−プについての処理が終了したかどうかを判断し、「YES 」の場合は一連の処理を終了し、「NO」の場合はステップ(21)に戻る。
【００３１】
図７は、ル−プ融合化の説明の前提として用いるソ−スプログラム形式を示す説明図である。
説明の便宜上、各ル−プの処理対象要素範囲が他ル−プの処理対象要素範囲に完全に包含されない、すなわち「Ｉ３＜Ｉ１＜Ｉ４＜Ｉ２」または「Ｉ１＜Ｉ３＜Ｉ２＜Ｉ４」が成り立つとする。
【００３２】
ソ−スプログラム例は、１０００個の要素からなる各配列Ａ、Ｂに対し、
・１０１乃至１０００（Ｉ１乃至Ｉ２）の各要素の乗算を実行するル−プ
・１乃至９００（Ｉ３乃至Ｉ４）の各要素の加算を実行するル−プ
の二つの並立ル−プを有している。
【００３３】
図８は、図７の並立ル−プに対するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(31)通常のベクトル化を実行する。
(32)ベクトル長ＶＬを〔ＭＡＸ（Ｉ２，Ｉ４）−ＭＩＮ（Ｉ１，Ｉ３）＋１〕とする命令を出力する。
(33)ｖｇｓｍ命令のｇｒ１に対して〔ＶＬ−（Ｉ２−Ｉ１＋１）〕を設定する命令を出力する。
(34)ｖｇｓｍ命令のｇｒ２に対してＶＬを設定する命令を出力する。
(35)ｖｇｓｍ命令のｇｒ３に対して〔１：（Ｉ１＞Ｉ３のとき）〕または〔（Ｉ４−１２＋１）：（Ｉ１＜Ｉ３のとき）〕を設定する命令を出力する。
(36)ｖｇｓｍ命令を出力する。
(37)ｖｇｓｍ命令のｇｒ１に対して〔ＶＬ−（Ｉ４−Ｉ３＋１）〕を設定する命令を出力する。
(38)ｖｇｓｍ命令のｇｒ２に対してＶＬを設定する命令を出力する。
(39)ｖｇｓｍ命令のｇｒ３に対して〔（Ｉ２−１４＋１）：（Ｉ１＞Ｉ３のとき）〕または〔１：（Ｉ１＜Ｉ３のとき）〕を設定する命令を出力する。
(40)ｖｇｓｍ命令を出力する。
(41)一つ目のル−プ内の命令すべてのオペランドに、ステップ(36)のｖｇｓｍ命令で生成されたｍｒ１（の値）を追加する。ｍｒ１をマスクデ−タとして使うためである。
(42)二つ目のル−プ内の命令すべてのオペランドに、ステップ(40)のｖｇｓｍ命令で生成されたｍｒ２（の値）を追加する。ｍｒ２をマスクデ−タとして使うためである。
(43)並立ル−プ構造を単一ル−プ構造に変換する。新しいル−プの初期値はＭＩＮ（Ｉ１，Ｉ３）、終値はＭＡＸ（Ｉ２，Ｉ４）とし、変換後のル−プ構造は下記のＩＦ文を挿入したかたちに対応している。
(44)共通式の削除や命令スケジュ−リングなどの最適化を実行する。
【数２】
0003887097.tif 000003
【００３４】
図９は、ｖｇｓｍ命令を使ったル−プ融合化の例を示す説明図であり、通常のベクトル化後、ｖｇｓｍ命令を使ったル−プ融合後、および最適化後のそれぞれの場合における命令イメ−ジのコンパイル出力を示している。各命令の内容は図４のそれと同様である。
【００３５】
ここで、
・１０１乃至１０００の各要素の乗算処理ル−プに対しては「ｇｒ１＝１００，ｇｒ２＝１０００、ｇｒ３＝１」のｖｇｓｍ命令（ｍｒ１）を使い、
・１乃至９００の各要素の加算処理ル−プに対しては「ｇｒ１＝１００，ｇｒ２＝１０００、ｇｒ３＝１０１」のｖｇｓｍ命令（ｍｒ２）を使っている。
【００３６】
この場合、ｍｒ１とｍｒ２のｖｇｓｍ命令出力の段階でもそれぞれのｇｒ１およびｇｒ２の最適化を実行している。
【００３７】
ル−プ融合後の最適化では、
・配列Ｂをベクトルレジスタｖｒに格納する二つのｖｌｏａｄ命令の一つを削除し、
・配列Ｃをベクトルレジスタｖｒに格納する二つのｖｌｏａｄ命令の一つを削除し、
・乗算命令ｖｍｕｌｔ、加算命令ｖａｄｄ、および乗算結果の保持命令ｖｓｔｏｒｅの順序を変更している。
【００３８】
なお、保持命令ｖｓｔｏｒｅにｍｒを付加してマスクデ−タ付き命令とする場合、その前の乗算命令ｖｍｕｌｔや加算命令ｖａｄｄにこれを付加するかどうかは任意である。
【００３９】
図１０は、ル−プ融合化時のコンパイラの構成図であり、２１はソ−スプログラム、２２はコンパイラ（コンパイル装置）、２３はオブジェクトプログラム、２４はソ−スプログラム解析部、２５はベクトル化部、２６はル−プ融合化部、２７はマスク付き融合化認識部、２８はマスク生成命令出力部、２９はマスク付き融合化実施部、３０は最適化部、３１はオブジェクトプログラム生成部をそれぞれ示している。
【００４０】
ソ−スプログラム解析部２４はソ−スプログラム２１を中間テキストに変換し、マスク付き融合化認識部２７はその中の命令の種類やオペランドのかたちをみてマスク付き融合化が可能なル−プを取り出している。
【００４１】
マスク生成命令出力部２８は図８のステップ(33)乃至(40)の処理を実行し、マスク付き融合化実施部２９は図８のステップ(41)乃至(43)の処理を実行し、また、最適化部３０は図８のステップ(44)の処理を実行している。ベクトル化部２５およびオブジェクトプログラム生成部３１の作用は従来のものと同様である。
【００４２】
図１１は、ル−プ融合化に関するコンパイル手順の概要を示す説明図であり、その内容は次のようになっている。
(51)コンパイル対象のル−プを取り出して、次のステップに進む。
(52)ベクトル化を実行して、次のステップに進む。
(53)並立ル−プの構造をしているかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(57)に進む。
(54)マスク付き融合化が可能であるかどうかを判断し、「YES 」の場合は次のステップに進み、「NO」の場合はステップ(57)に進む。
(55)マスク生成命令を出力した上でマスク付き融合化を実行して、次のステップに進む。
(56)ル−プ融合後の共通式の削除や命令スケジュ−リングなどの最適化を実行して、次のステップに進む。
(57)すべてのル−プについての処理が終了したかどうかを判断し、「YES 」の場合は一連の処理を終了し、「NO」の場合はステップ(51)に戻る。
【００４３】
図１２は、マスク生成命令を実行するオブジェクトプログラム実行装置を示す説明図であり、４１はオブジェクトプログラム、４２はオブジェクトプログラム実行装置、４３は各種命令や演算用デ−タなどを保持する記憶部、４４はマスク生成命令（ｖｇｓｍ）を実行してマスクデ−タを出力するマスクデ−タ作成部、４５はマスクデ−タ付きのベクトル演算を実行するベクトル演算部、４６はレジスタなどのベクトル演算結果保持部をそれぞれ示している。
【００４４】
図１３は、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図であり、５１はコンピュ−タシステム、５２はＣＰＵやディスクドライブ装置などを内蔵した本体部、５３は本体部５２からの指示により画像を表示するディスプレイ、５４は表示画面、５５はコンピュ−タシステム５１に種々の情報を入力するためのキ−ボ−ド、５６は表示画面５４上の任意の位置を指定するマウス、５７は外部のデ−タベ−ス（ＤＡＳＤなどの回線先メモリ）、５８は外部のデ−タベ−ス５７にアクセスするモデム、５９はＣＤ−ＲＯＭやフロッピ−ディスクなどの可搬型記憶媒体をそれぞれ示している。
【００４５】
プログラムを格納する記憶媒体としては、
・プログラム提供者側のデ−タベ−ス５７（回線先メモリ）
・可搬型記憶媒体５９
・本体部５２側のメモリ
などのいずれでもよく、当該プログラムは本体部５２にロ−デイングされてその主メモリ上で実行される。
【００４６】
【発明の効果】
本発明は、このようなマスク作成命令ｖｇｓｍを用いてコンパイルし、またオブジェクトプログラム中のマスク作成命令を実行しているので、ル−プ一重化やル−プ融合化にともなうマスクデ−タ付きのベクトル演算処理の高速化を図ることができる。
【００４７】
また、このマスク作成命令をル−プ融合化に適用するときには、ル−プ融合化後のプログラム中の共通式の削除や命令スケジュ−リングなどの最適化を行なうことにより、ベクトル計算機の実効性能を一段と向上させることができる。
【図面の簡単な説明】
【図１】本発明の、マスク生成命令を示す説明図である。
【図２】本発明の、ル−プ一重化におけるマスク生成命令の概念を示す説明図である。
【図３】図２の二重ル−プに対するコンパイル手順の概要を示す説明図である。
【図４】本発明の、ｖｇｓｍ命令を使ったル−プ一重化の例を示す説明図である。
【図５】本発明の、ル−プ一重化時のコンパイラの構成図である。
【図６】本発明の、ル−プ一重化に関するコンパイル手順の概要を示す説明図である。
【図７】本発明の、ル−プ融合化の説明の前提として用いるソ−スプログラム形式を示す説明図である。
【図８】図７の並立ル−プに対するコンパイル手順の概要を示す説明図である。
【図９】本発明の、ｖｇｓｍ命令を使ったル−プ融合化の例を示す説明図である。
【図１０】本発明の、ル−プ融合化時のコンパイラの構成図である。
【図１１】本発明の、ル−プ融合化に関するコンパイル手順の概要を示す説明図である。
【図１２】本発明の、マスク生成命令を実行するオブジェクトプログラム実行装置を示す説明図である。
【図１３】本発明の、コンピュ−タ読み取り可能な記録媒体からプログラムを読み取って実行するコンピュ−タシステムの概要を示す説明図である。
【図１４】従来の、マスク付き一重化のコンパイル処理の概要を示す説明図である。
【図１５】図１４(b) のコンパイル内容に対応の処理手順を示す説す説明図である。
【図１６】図１４(b) のコンパイル内容に対応の命令イメ−ジを示す説明図である。
【符号の説明】
図１および図２において、
１：基本パタ−ン
ｇｒ１：基本パタ−ンの偽値（０）の個数を特定する値（レジスタ）
ｇｒ２：基本パタ−ンの全体個数を特定する値（レジスタ）
ｇｒ３：マスクデ−タの始まり位置を特定する値（レジスタ）
２：ル−プ処理対象部分
３：基本パタ−ンの開始位置に対応の要素
４：ｇｒ１の指定位置に対応の要素
５：ｇｒ３の指定位置に対応の要素
６：ｇｒ２の指定位置でかつ要素基本パタ−ンの最終位置に対応の要素
７：要素５からベクトル長分だけ後続の要素
【図１】
0003887097.tif 000004
【図２】
0003887097.tif 000005
【図３】
0003887097.tif 000006
【図４】
0003887097.tif 000007
【図５】
0003887097.tif 000008
【図６】
0003887097.tif 000009
【図７】
0003887097.tif 000010
【図８】
0003887097.tif 000011
【図９】
0003887097.tif 000012
【図１０】
0003887097.tif 000013
【図１１】
0003887097.tif 000014
【図１２】
0003887097.tif 000015
【図１３】
0003887097.tif 000016
【図１４】
0003887097.tif 000017
【図１５】
0003887097.tif 000018
【図１６】
0003887097.tif 000019