JPS59165147A - コンパイラにおける条件文のベクトル命令化方式 - Google Patents

コンパイラにおける条件文のベクトル命令化方式

Info

Publication number
JPS59165147A
JPS59165147A JP58040296A JP4029683A JPS59165147A JP S59165147 A JPS59165147 A JP S59165147A JP 58040296 A JP58040296 A JP 58040296A JP 4029683 A JP4029683 A JP 4029683A JP S59165147 A JPS59165147 A JP S59165147A
Authority
JP
Japan
Prior art keywords
vector
text
program
statement
mask
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
JP58040296A
Other languages
English (en)
Other versions
JPH0346863B2 (ja
Inventor
Masaaki Takiuchi
滝内 政昭
Yukio Kamiya
幸男 神谷
Koichiro Hotta
耕一郎 堀田
Toshihiro Hirabayashi
平林 俊弘
Masataka Yamanashi
正孝 山梨
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 JP58040296A priority Critical patent/JPS59165147A/ja
Publication of JPS59165147A publication Critical patent/JPS59165147A/ja
Publication of JPH0346863B2 publication Critical patent/JPH0346863B2/ja
Granted legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、複数の並列演算部をそなえたベクトル処理プ
ロセッサに対して、与えられたソース畳プログラムから
目的プログラムを生成して供給するコンパイラにおいて
、ループ構造内に条件文が含まれる場合でも、ループ内
の各文に対応して、当該文をに1エレメントに対して実
行するか否かを、マスク情報として与えるようにして、
並列実行可能な形にして処理してゆく際、条件文の条件
式の真率および条件文によって制御を受ける部分の演算
種類、ベクトル・データの種類、その引用のされ方な・
どの情報を予め収集し、最も適切な方式−でベクトル命
令化するコンパイラにおける条件文のベクトル命令化方
式に関するものである。
〔技術の背景と問題点〕
例えば、第1図囚に示す如く、ベクトルAに属するエレ
メントαl+ale・・・・・・とベクトルBに属する
エレメントh、、b2.・・・・・・との各エレメント
相互を加算して、エレメントI’s e C1*・・・
・・・をもつベクトルCを生成するような、ベクトル命
令を実行するベクトル処理プロセッサが存在している。
第1図(5)図示の場合、第を番目のエレメント相互の
加算を行なうか否かをマスクφニレメン) ”t +m
t *・・・・・・にて指示するようにされておシ、第
1図■に一般化して示す如き処理が行なわれる。
上・記の如き処理を行なうベクトル処理プロセッサを有
するデータ処理システムは、一実施例として第2図図示
の如きシステム構成をもっている。
図中の符号1は主記憶装置、2はメモリ制御装置、3は
ベクトル処理プロセッサ、4はチャネル・プロセッサ、
5は大記憶装置、6はスカラ処理回路部、7はベクトル
処理回路部、8−0.8−1、・・・は夫々浮動小数点
データーレジスタ、9−0.9−1、・・・は夫々複数
個のデータ(エレメント・データ)を格納し得るベクト
ル・レジスタ、1〇−〇、10−1、・・・は夫々複数
個のマスク・データ(マスク・エレメント・データ)を
格納し得るマスク・レジスタ、11はベクトル長レジス
タであって各ベクトル−レジスタに格納されるエレメン
トの個数情報がセットされるもの、12−0.12−1
は夫々メモリのアクセス・パイプライン13は加減算パ
イプライン、14は乗算処理ノくイブライン、15は除
算処理パイプライン、16はマスク処理パイプラインを
表わしている。
上記の如きベクトル処理プロセッサが処理を実行するに
商って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラムをコンパイルし目的プログラ
ムを生成することが行なわれる。当該コンパイルを行な
うコンパイラの構成はI@3図を参照して後述されるが
、当該コンパイラによるコンパイル処理に当って、ルー
プ構造をもつプログラムにおいて、当該ループ内に例え
ばIF文のような条件文が含まれていると、並列実行可
能部分を取出す(ベクトル化する)場合、実行上の効率
まで考えてはベクトル化していなかった。従って、条件
文の種類、性質などによっては実行効率の悪いことがあ
りた。
〔発明の目的〕
本発明は、上記の考察に基づくものであって、条件文を
含むプログラムのベクトル化に当たって、1  条件文
のベクトル命令として最適なものを生成し、実行効率を
上げることができる条件文のベクトル命令化方式を提供
することを目的とするものである。
〔発明の構成〕
そ・のために本発明のコンパイラにおける条件文のベク
トル命令化方式は、複数の並列演算部をそなえると共に
複数個のレジスタを少なくともそなえてベクトル命令を
実行するベクトル処理プロセッサに対して、与えられた
ソース−プログラムから目的プログラムを生成して供給
するコンパイラにおいて、上記ソース・プログラムの文
解釈を行って中間テキストに展開するソース解釈部、プ
ログラム中に出現する各種データに記憶域内番地を割当
てる記憶域割付は部、プログラム中のループ構造を検出
して並列実行可能部分の認識を行いかつ上記中間テキス
ト変更を行うベクトル化部、中間テキストのレベルで上
記ベクトル処理プロセッサを有効に利用するための最適
化を施す中間テキえト最適化部、中間テキストに現われ
たデータに実際の資源を割当てるレジスタ使用決定部、
及び目的プログラム出力部をそなえてなシ、更に、上記
ベクトル化部は、ループ内の条件文の存在をチェックし
、条件文が存在する場合に、ループ内の各文に対応して
当該文を第1エレメントに対して実行するか否かをマス
ク情報として与え、当該マスク情報を基に条件付の演算
を行う複数の方式の中から最適な方式を選び、当該方式
によシベクトル・テキストを生成するように構成された
ものであって、上記複数の方式の夫々に対応して当該方
式によるベクトル拳テキストを生成する複数のテ、キス
ト生成部、同一マスクで実行される中間テキスト群に対
して演算の種類やベクトルφデータの種類、当該データ
の引用のされ方など実行時間の計算の基礎となる情報を
収集する情報収集部、上記収集された情報を使って上記
複数の方式の夫々によシベクトル・テキストを生成した
場合の実行時間を計算する実行時間計算部、及び夫々の
方式による上記実行時間を比較し、上記複数の方式から
適切な方式を選択する最適方式選択部を少なくとも有し
、上記複数のテキスト生成部は、上記最適方式選択部に
よって選択された方式に対応するテキスト生成部が選択
され当該選択された方式によるベクトル・テキストを生
成するように構成されたことを特徴とするものである。
〔発明の実施例〕
以下、本発明の実施例を図面を参照しつつ説明する。
第3図は本発明に用いるコンパイラの1実施例構成、を
示す図、第4図はソース・プログラムを中間テキストに
移してゆく態様を説明する図、第5図はソース拳プログ
ラムをベクトル化してゆく態様を説明する図、1g6図
ないし第8図はIF文を含むソース・プログラムに対し
て文マスクやパス・マスクを用意して並列実行可能な形
に変形してゆく態様を説明する図、第9図は本発明に用
いる条件付の演算の3つの方式による操作の様子を説明
する図、第10図は本発明に用いる条件付の演算の3つ
の方式に基づいてベクトル拳テキストを生成してゆく態
様を説明する図、第11図はベクトル化部による本発明
の処理の流れを示す図、第12図はマスクの値がループ
内で不変である場合に実行部分迂回処理を行ないベクト
ル・テキストを生成してゆく態様を説明する図、第13
図は真率がOとなった場合の迂回処理を行ないベクトル
・テキストを生成してゆく態様を説明する図である。
第3図において、17は大記憶装置に格納されているソ
ース拳プログラム、18はコンパイラ、19はコンパイ
ルされて大記憶装置上に格納される目的プログラム、2
0はソース解釈部、21は記憶域割付は部、22はベク
トル化部、23は中間テキスト最適化部、24はレジス
タ使用決定部、25は目的プログラム出力部を表わして
いる。
コンパイラ18は、大記憶装置からソース拳プログラム
17を取込んで、所望の目的プログラム19を生成する
。このとき図示の各部は次のような処理を行う〇 即ち、ソース解釈部2oはソース・プログラム17を大
記憶装置から取込み、文解釈を行って中間テキス1m展
開する。例えばソース・プログラムが第4図図示左側の
如き場合に図示右側に示す如き中間テキストに展開する
。記憶域割付は部21はプログラム内に出現する各種デ
ータに対応して記憶域内番地を割当てる。ベクトル化部
22は、プロ・久ラム中のループ構造を検出し、並列実
行可能部分を認識し、゛第5図図示の如く中間テキスト
変更を行う0中間テキスト最適化部23は、中間テキス
トのレベルで、第2図図示の如きベクトル処理プロセッ
サを有効に利用するための最適化を施す。レジスタ使用
決定部24は、中間テキストに現われたデータに対して
、ベクトル処理プロセフサ上の資源(レジスタ)を割当
てる・そして目的プログラム出力部25は機械命令語を
大記憶装置へ出力しかつ命令語レベルでの最適化を行う
ベクトル処理プロセッサを稼動させるためのコンパイラ
は第3図図示の如き構成をもってお)、ループ構成内に
IF文をもたないプログラムについては第5図に概念的
に示した如く並列実行可能な形にして処理してゆくこと
が可能である。しかし第6図に示す如きソース・プログ
ラムが与えられると、当該ループ構成の中にr I F
 (A(1)、GT。
B(1))Go TO50JなどのIF文が存在するこ
とから、従来このようなループ構成については一般には
並列実行可能な状態にないものとして処理されていた。
しかし、当該プログラムの場合、IF文の飛び先がルー
プ内に止まってお夛、プログラム中の個々の文について
個々の処理に当って当該文を実行するか否かを文マスク
7XLにて指示する手法を採用することによって、上記
並列実行可能なものとなることが判った。
なお第6図図示のプログラムは、概路次の如き処理を指
示している。即ち、■の値が「1」から「N」になるま
で繰返して文、。ないし文、。を実行することを指示し
、その間に文、。によって成る工の値のときA (I)
がB (I)よりも大となるならば文、。
に飛び、また文、0によって成るIの値のときB (I
)がYよりも大となるならば文。。に飛ぶことを指示し
ている。上記文マスクは、例えば文、。に対応してrA
(I)、GT、B(I)Jなる条件以外のとき、当該文
、。を実行するよう指示すれば、IF文が第8図図示の
如く消滅する形となる。
第7図は、第6図図示のプログラムを構成する各文、0
ないし文、0に対して、どのような文マスク町0ないし
”yoを与えるかを説明する説明図を示してい・る。
文、0の場合にはIの値の如何に拘らず、すべてのIに
ついて実行する必要がある。このことから文マスク町0
としてグ(空)となる。文!0の場合も町。とじてグと
なる。文、。から文soへ飛ぶルートは文、。の条件r
A(I)、GT、B(I)Jのときにとられるもので、
当該バスに対してパス・マスクP、。。
、。とじて P、。、、。= A(I)、 G T、 B (I)が
与えられ、一方間様にパス・マスクP 1098G  
として P to eso =  P to mi。
が与えられる。この結果から文soに対応する文マスク
7713゜は ”no = P to * s。
となる。
文4oについての文マスクm46は7713o と同じ
ものとなる。同じようにして、パス・マスクP4゜、6
゜やP2O,soが図示の如く与えられ、文マスク7F
L Boは、パス・マスクP to + soとP40
1110との論理和をとったものとなる。そして文マス
クm6゜9m7゜はグとなるO このような文マスクrILLを与えると、第6図図示の
プログラムは、第8図図示プログラムの如く、IF文が
存在しない形となって、並列実行可能な形となる。なお
、第8図において、「=」を附して示した所のr:M、
j、r : Mll Jは対応する文についての文マス
クであると考えてよい。
このように一般には、(1)IF文を含むループ内の各
文に対応して文マスクを例えば第1番目の文に対して文
マスク771zとして与え、かつ(If) 当該館i番
目の文がIF文でない場合に第(i+i)番目の文に向
うパスに対しパス・マスクPi、i+1として値m7を
与え、(Il+)当該館を番目の文がIF文である場合
に当該IF文の条件なCiとするとき条件成立によって
飛ぶ所の飛び先の第に番目の文へのパスに対してパス・
マスクPikとして mi、A N D 、 Ci を与え、(lv)当該第1番目の文がIF文である場合
に当該IF文の条件Ciの条件不成立によって飛ぶ所の
億び先の第に′番目の文へのパスに対してパス拳マスク
Pi klとして 7ni−A N D −Ci を与え、(V)上記文マスクmiを与えるに轟って、上
記パス−マスクを調べて第1番目の文へ至るパスに対応
するパス・マスクPliについての論理和をとる、即ち 町= U Pii  (j\i) ! で与えるようにし、IF文を含んでいる場合でも並列実
行可能な範囲を増大せしめるようにコンパ1.イルする
。以上のようなコンパイラ処理方式は、本願と同一の出
願人によ)先行発明(特願昭57−’31198号)と
して既に提案されている。
また、ベクトル処理プロセッサには、マスク付ベクトル
演算の他に、IF文のような条件文を処理するのに適し
た命令として、ベクトル・データをある条件の下で圧縮
/拡散する命令、及びランダムな位置にあるデータをア
クセスできる命令がある。後者において、ランダムな位
置を示すのにはインダクタ・リストという添字位置だけ
を集めたデータ列を用いるため、このような命令のこと
をリスト処理命令ともいう。また、リスト処理命令で扱
われるベクトル・データのことをリスト・1ベクトルと
もいう。そして、これらの命令を用いて条件付の演算を
行う方式として3つの方式があシ、その1つがマスク付
演算方式であシ、2っめが圧縮/拡散方式であ夛、3つ
めがリストΦベクトル方式である。それぞれの方式によ
るAi+Bi :Mje i =1 * 2 *・・・
・・・・・・8という条件付の演算の操作の様子を示し
たのが第9図である。
マスク付演算方式は、第9図(A)K示すように、演算
マスク機能を利用し、マスク部が真の要素(斜線部)だ
けを演算するものであり、全ベクトル要素を演算対象と
するため、演算時間はベクトル要素数分だけ必要となる
という点はデメリットであるが、補助操作がないという
点がメリットである。
圧縮/拡散方式は、第9図(2)に示すように、演算対
象となりた要素をあらかじめ収集し、収集した要素(A
%BからA′、B′へ)に対して演算を行い、そ七て演
算した結果をもとのベクトルに拡散するものであシ、対
象ベクトル要素を圧縮/拡散する補助操作を伴うという
点はデメリットであるが、対象ベクトル要素のみを演算
するという点がメリットである。
リスト・ベクトル方式は、第9図0に示すように、演算
対象となった要素のインダクタ・リストを作成し、この
インダクタ・リストに従って対象要素を取シ出して演算
するものであり、圧縮/拡散方式と同様に、対象ベクト
ル要素のアクセスのためにインダクタ・リストを作成す
る補助操作を伴うと−いう点仲デメリットであるが、対
象さクトル要素のみを演算するという点がメリットで゛
ある〇従って、マスク付演算方式は、他の2方式に比べ
て演算時間が長いが、補助操作もなく最も広く使え、条
件文の真率が高い場合に特に有効である。
他方、圧縮/拡散方式は、集めたベクトル要素を複数回
利用したシ、又はそれを基に縮小した要素数で多くの演
算(例えば関数演算)を行うのに有効であり、また、゛
り艮ト・ベクトル方式は、演算対象ベクトル要素数が少
ない(条件文の真率が低い)場合に有効である。
本発明は、先に説明した第3図図示の如き構成をもった
コンパイラのベクトル化部において、条件文を含むルー
プ内の各文に対して先に説明した先行発明によシマスフ
が与えられた中間テキストを取出し、マスク付演算方式
、圧縮/拡散方式、及びリスト・ベクトル方式のそれぞ
れの方式による実行時間に差を生じる要因となる情報と
して、条件式の真率及び条件文によって制御を受ける部
分の演算種類、ベクトル・データの種類、その引用のさ
れ方などの情報を予め収集する。そして、それらの情報
に基づいて3つの方式のうち最も適切な方式を選びベク
トル命令化する。
本発明では、先に述べた各方式での実行時間を計算する
ために、同一マスクで実行される中間テキスト群に対し
て、条件文によって制御を受ける部分の演算の種類、ベ
クトル・データの種類、その引、用のされ方などの情報
として例えば次のような情報を収集する。
■ +、−0木 などの演算数 ・・・・旧・・・・・
 ntO/(除算)・・・・・−・・旧・・・旧■・旧
・・・旧・・・・・ nd■ 関数   ・・・・旧・
・・1旧・・・・・・旧・・・旧・・・・・rLf@テ
ィスタンス4or8のロード・旧・・・旧・・  ルノ
■ ディスタンス4org以外の四−ド・旧・・rLl
d■ インダイレクトロード ・・・・・・・・・・・
・・・・・・・−2@テイスタンス40r8のストア 
・・・・・・・・・ ジ@ ディスタンス40r8以外
のストア・・・・・・nsd■ インダイレクトストア
 ・・・・・・・・・・・・・・・・・・ml■ オペ
ランドに直接出現する誘導変数・n1rdex■ 配列
をアクセスするための誘導変数・・・n1rd■ υt
/mt  ・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・伊tまた、こ
の範囲のマスクの裏車(条件式が成立つtrue率)を
tとする。マスクの裏車tはマスク生成において設定さ
れるものである。
次に、収集した上記の各情報を元に、各方式により命令
生成した場合のおよその実行時間を計算する。
マスク付演算方式によシ命令生成した場合のおよそ−の
実行時間TMは、次式で求められるOTM = TVL
8 + TIX      ・・・・・・ (1)ここ
で、TMLBはデータのロード、ストアにかかる時Ji
JLTgxは演算部分の実行時間を表わす。
圧縮/拡散方式によシ命令生成した場合のおよその実行
時間TCIは、次式で求められるOTcg = TCI
CLS + TCIAUX + Txx$j +TVL
  −(2)ここで% TCIL8はデータのロード、
ストアにかカル時間・TCEAUXは補助操作のために
、即ちデータの圧縮/拡散に要する時間、TVLはベク
トル長が変化することによって余分にかかる時間% T
EXは(1)式と同じ内容の時間を表わす。
リストeベクトル方式によシ命令生成した場合のおよそ
の実行時間TLは、次式で求められる。
Tt、=Tt、t、s+TL*vx+TEx*t+Ty
L・・・・−(3)ここでs TLL8はデータのロー
ド、ストアKかかる時間、TLAUXは補助操作のため
に、即ちデータのアクセスのためのインデクス・リスト
作成に要する時間、TEXとTvLは(2)式と同じ内
容の時間を表わす。
上記(1)ないしく3)式によシ各方式の実行時間Ty
1sTCK、TLが求められると、これらの実行時間を
比較し、最も実行時間が小さい方式を選択する。そして
、その選択した方式によシベクトル・テキストを生成す
るが、それぞれの方式によ〕生成されるベクトル・テキ
ストの例を示したのが第10図である。
例えば、 DOIOI=1.N IF   (L (I) ) THENA (I) =
 B (I) 十C(I)END  IF 10 C0NTINUE に対して、マスク付演算方式によシ生成されるベクトル
・テキストを示したのが第10図(イ)であシ、圧縮/
拡散方式によシ生成されるベクトル・テキストを示した
のが第10図(8)であυ、リストφベクトル方式によ
り生成されるベクトル・テキストを示したのが第10図
(Oである。なお、第10図において、0N(77Lt
1)はマスク中の真の要素の個数。
を表わす。
次にコンパイラのベクトル化部において、情報の収集、
各方式による実行時間の計算、最適な方式の選択などを
行い、ベクトル・テキストを生成する処理の流れを第1
1図を参照しつつ説明する。
■ プログラム中のループを取シ出す。次に■の処理を
行う0ループがなければ終了とする。
■ ループ内に条件文があるか否かを調べる。
Yesの場合には■の処理を行い。Noの場合には■の
処理に戻る。
■ ループ内の各中間テキストのマスクが同じ部分につ
いて取シ出す。
マスクが一般のマスクである場合には■の処理、マスク
の値がループ内で不変である場合には■の処理、マスク
なしの場合には■の処理を行う。ループ内の全ての中間
テキストについて処理が終っている場合には■の処理に
戻る。
■ 解析対象範囲を決定し、情報収集を行う・次に■の
処理を行う。
■ 各方式の実行時間の計算を行う。次に■の処理を行
う。  ゛ ■ 計算した各方式の実行時間を比較し、最適な方式の
選択を行う。次に■の処理を行う。
■ 裏車が小さい場合の迂回処理を行う。
即ち、裏車が0の可能性のある場合(外部から指定のあ
った場合)には、第13図に示すように実行を迂回する
テキストを出力する。
次にマスク付演算方式が選択されている場合には■の処
理を行い、圧縮/拡散方式が選択されている場合には[
相]の処理を行い、リスト書ベクトル方式が選択されて
いる場合には◎の処理を行う。
■ 上記■ないし■の処理はマスクがループ内で変化す
るときであり、IF文の条件式が例えば第12図に示す
ように、ループ内で不変である場合には、IF文をその
まま残し、命令選択処理は行わない実行部分迂回処理を
行う。次に■の処理を行う。
■ ベクトル・テキスト変換処理を行う。
次に■の処理に戻る。
[相]”データ圧縮処理を行う。次に@の処理を行うO ■ リスト・ベクトルを生成する。次に@の処理を行う
■ ベクトル長再設定テキストを生成する0次に[相]
の処理を行う。
[相] 命令選択範囲内の全テキストのベクトル中テキ
スト変換処理を行う。次に■の処理を行うO Oベクトル長再設定テキストを生成する0次に圧縮/拡
散方式が選択されている場合には[相]の処理を行い、
リスト・ベクトル方式が選択されている場合には■の処
理に戻る。
[相] データ拡散処理を行う。次圧■の処理に戻る。
〔発明の効果〕
以上の説明から明らかなようk、本発明によれば、条件
文をベクトル化しようとする場合、条件文の・条件式の
裏車や条件文によって制御を受ける部分の演算種類;ベ
クトル・データの種類、その引用のされ方などの情報を
予め収集し、その情報を元に3方式のうち最も適切な方
式でベクトル命令化するので、条件文を含むプログラム
のベクトル化において、きめ細かいベクトル化が可能と
なシ、実行効率を上げることができる。
【図面の簡単な説明】
第1図はベクトル命令に対応した処理を概念的に説明す
る図、第2図はベクトル処理プロセッサを有する処理シ
ステムの1例を示す図、第3図は本発明に用いるコンパ
イラの1実施例構成を示す図、第4図はソース・プログ
ラムを中間テキストに移してゆく態様を説明する図、第
5図はソース・プログラムをベクトル化してゆく態様を
説明する図、第6図ないし第8図はIF文を含むソース
命プログラムに対して文マスクやパス・マスクを用意し
て並列実行可能な形にしてゆく態様を説明する図、第9
図は本発明に用いる条件付の演算の3つの方式による操
作の様子を説明する図、第10図は本発明に用いる条件
付の演算の3つの方式に基づいてベクトル・テキストを
生成してゆく態様を説明する図、第11図はベクトル化
部による本発明の処理の流れを示す図、第12図はマス
クの値がループ内で不変である場合に実行部分迂回処理
を行ないベクトル・テキストを生成してゆく態様を説明
する図、第13図は裏車が0となった場合の迂回処理P
行ないベクトル・テキストを生成してゆく態様を説明す
る図である。 l・・・主記憶装置、2・・・メモリ制御装置、3・・
・ベクトル処理1日セッサ、4・・・チャネル・プロセ
ッサ、5・・・大記憶装置、6・・・スカラ処理回路部
、7・・・ベクトル処理回路部、8−oないし8− n
・・・浮動小数点データ・レジスタ、9−0ないシ9−
 n・・・ベクトル・レジスタ、10−0ないL 10
−n・・・マスク・レジスタ、11・・・ベクトル長レ
ジスタ、12−〇と12−1・・・メモリ・アクセス・
パイプライン、13・・・加減算パイプライン、14・
・・乗算処理パイフパライン、15・・・除算処理パイ
プライン、16・・・マスク処理パイプライン、17・
・・ソース争プログラム・、18・・・コンパイラ、1
9・・・目的プログラム、20・・・ソース解釈部、2
1・・・記憶域割付は部、22・・・ベクトル化部、2
3・・・中間テキスト最適化部、24・・・レジスタ使
用決定部、25川目的プログラム出力部。 特許゛出願人 富士通株式会社 代理人弁理士 京 谷 四 部 才1図 ff2図 ヤ 3 図 才5図 )′x8図 ズ I? 図 (A)

Claims (1)

    【特許請求の範囲】
  1. 複数の並列演算部をそなえると共に複数個のレジスタを
    少なくともそなえてベクトル命令を実行するベクトル処
    理プロセッサに対して、与えられたソース・プログラム
    から目的プログラムを生成して供給するコンパイラにお
    いて、上記ソース・プログラムの文解釈を行りて中間テ
    キストに展開するソース解釈部、プログラム中に出現す
    る各種データに記憶域内番地を割当てる記憶域割付は部
    、プログラム中のループ構造を検出して並列実行可能部
    分の認識を行いかつ上記中間テキスト変更を・行うベク
    トル化部、中間テキストのレベルで上記ベクトル処理プ
    ロセッサを有効に利用するための最適化を施す中間テキ
    スト最適化部、中間テキストに現われたデータに実際の
    資源を割当てる・レジスタ使用決定部、及び目的プログ
    ラム出力部をそなえてなり、更に、上記ベクトル化部は
    、ループ内の条件文の存在をチェックし、条件文が存在
    する場合に1ループ内の各文に対応して当該文を第エエ
    レメントに対して実行するか否かをマスク情報として与
    え、当該マスク情報を基に条件付の演算を行う複数の方
    式の中から最適な方式を選び、当該方式によりベクトル
    ・テキストを生成するように構成されたものであって、
    上記複数の方式の夫々に対応して尚核力式によるベクト
    ル・テキストを生成する複数のテキスト生成部、同一マ
    スクで実行される中間テキスト群に対して演算の種類や
    ベクトル嘩データの種類、当該データの引用のされ方な
    ど実行時間の計算の基礎となる情報を収集する情報収集
    部、上記収集された情報を使りて上記複数の方式の夫々
    によシベクトル・テキストを生成した場合の実行時間を
    計算する実行時間計算部、及び夫々の方式による上記実
    行時間を比較し、上記複数の方式から適切な方式を選択
    する最適方式選択部を少なくとも有し、上記複数のテキ
    スト生成部は、上記最適方式選択部によって選択された
    方式に対応するテキスト生成部が選択され当該選択され
    た方式によるベクトル書テキストを生成するように構成
    されたことを特徴とするコンパイラにおける条件文のベ
    クトル命令化方式。
JP58040296A 1983-03-11 1983-03-11 コンパイラにおける条件文のベクトル命令化方式 Granted JPS59165147A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58040296A JPS59165147A (ja) 1983-03-11 1983-03-11 コンパイラにおける条件文のベクトル命令化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58040296A JPS59165147A (ja) 1983-03-11 1983-03-11 コンパイラにおける条件文のベクトル命令化方式

Publications (2)

Publication Number Publication Date
JPS59165147A true JPS59165147A (ja) 1984-09-18
JPH0346863B2 JPH0346863B2 (ja) 1991-07-17

Family

ID=12576642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58040296A Granted JPS59165147A (ja) 1983-03-11 1983-03-11 コンパイラにおける条件文のベクトル命令化方式

Country Status (1)

Country Link
JP (1) JPS59165147A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62248065A (ja) * 1986-04-22 1987-10-29 Fujitsu Ltd スパ−ス行列の連立方程式の解法方式
WO2014064798A1 (ja) 2012-10-25 2014-05-01 富士通株式会社 実行制御方法及び情報処理装置
JP2014182802A (ja) * 2013-03-15 2014-09-29 Intel Corp 演算マスクのマスクされていない要素をコンソリデートするプロセッサ、方法、システム、及び命令
JP2019067117A (ja) * 2017-09-29 2019-04-25 富士通株式会社 コード生成装置、コード生成方法及びコード生成プログラム
JP2021093012A (ja) * 2019-12-11 2021-06-17 富士通株式会社 コンパイルプログラム、および情報処理装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62248065A (ja) * 1986-04-22 1987-10-29 Fujitsu Ltd スパ−ス行列の連立方程式の解法方式
WO2014064798A1 (ja) 2012-10-25 2014-05-01 富士通株式会社 実行制御方法及び情報処理装置
US9459852B2 (en) 2012-10-25 2016-10-04 Fujitsu Limited Execution control method and information processing apparatus
JP2014182802A (ja) * 2013-03-15 2014-09-29 Intel Corp 演算マスクのマスクされていない要素をコンソリデートするプロセッサ、方法、システム、及び命令
US9411593B2 (en) 2013-03-15 2016-08-09 Intel Corporation Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks
JP2019067117A (ja) * 2017-09-29 2019-04-25 富士通株式会社 コード生成装置、コード生成方法及びコード生成プログラム
JP2021093012A (ja) * 2019-12-11 2021-06-17 富士通株式会社 コンパイルプログラム、および情報処理装置

Also Published As

Publication number Publication date
JPH0346863B2 (ja) 1991-07-17

Similar Documents

Publication Publication Date Title
Stephens et al. The ARM scalable vector extension
Kildall A unified approach to global program optimization
US6550059B1 (en) Method for generating optimized vector instructions from high level programming languages
JPS59165147A (ja) コンパイラにおける条件文のベクトル命令化方式
Lin Compiler support for predicated execution in superscalar processors
Foley et al. Efficient partitioning of fragment shaders for multiple-output hardware
Krohn A parallel approach to code generation for Fortran like compilers
JPS6319906B2 (ja)
JPH037989B2 (ja)
Ramamoorthy et al. A higher level language for micro-programming
JPS6321946B2 (ja)
JPH06103462B2 (ja) ベクトル・レングス制御範囲分割処理方式
JPS58149570A (ja) ベクトル命令のスケジユ−リング処理方式
JPH046020B2 (ja)
JPH0317136B2 (ja)
Thornley Integrating parallel dataflow programming with the Ada tasking model
JPS6319905B2 (ja)
JPS6319908B2 (ja)
JPS58151654A (ja) レジスタ割付け方式
WO1987006736A1 (en) Improvements relating to control flow in computers
De Sutter et al. On the use of subword parallelism in medical image processing
JPH02132525A (ja) コンパイル方法
JPS59180669A (ja) 領域不変ベクトルの割付方式
Treleaven Towards a decentralised general-purpose computer
JPH0152779B2 (ja)