JPH02214974A - ベクトル化処理方式 - Google Patents
ベクトル化処理方式Info
- Publication number
- JPH02214974A JPH02214974A JP3587889A JP3587889A JPH02214974A JP H02214974 A JPH02214974 A JP H02214974A JP 3587889 A JP3587889 A JP 3587889A JP 3587889 A JP3587889 A JP 3587889A JP H02214974 A JPH02214974 A JP H02214974A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- program
- intermediate text
- text
- loop
- 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.)
- Pending
Links
- 239000013598 vector Substances 0.000 claims abstract description 37
- 238000004458 analytical method Methods 0.000 claims description 37
- 238000003672 processing method Methods 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 2
- 238000012916 structural analysis Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はベクトル処理プロセッサに供給する目的プログ
ラムを生成するコンパイラにおけるベクトル化処理方式
に関するものである。
ラムを生成するコンパイラにおけるベクトル化処理方式
に関するものである。
記憶域上に規則的に並んでいるデータに対して一度に演
算を行うベクトル命令をもっベクトル処理プロセッサに
おいては、−船釣に目的プログラムのうちのベクトル命
令によって実行される部分の割合を大きくすればするほ
どプログラムの実行時間を短縮することができる。従っ
て、このようなベクトル処理プロセッサに対するコンパ
イラでは、与えられた原始プログラムを可能な限りベク
トル命令による並列実行可能な形で目的プログラムに変
換することが望まれる。
算を行うベクトル命令をもっベクトル処理プロセッサに
おいては、−船釣に目的プログラムのうちのベクトル命
令によって実行される部分の割合を大きくすればするほ
どプログラムの実行時間を短縮することができる。従っ
て、このようなベクトル処理プロセッサに対するコンパ
イラでは、与えられた原始プログラムを可能な限りベク
トル命令による並列実行可能な形で目的プログラムに変
換することが望まれる。
ところで、ベクトル処理プロセッサに対する従来のコン
パイラは、高級言語(例えばFORTRAN)で記述さ
れた原始プログラムを読み込み、構文解析を行って第1
中間テキストを生成する構文解析部と、第1中間テキス
トから原始プログラム中のループ構造を検出してベクト
ル化可能部分の認識を行い、ベクトル処理用の第2中間
テキストを生成するベクトル化処理部と、第2中間テキ
ストから目的プログラムを生成して出力するコード生成
部とから、その主要部が構成されていた。
パイラは、高級言語(例えばFORTRAN)で記述さ
れた原始プログラムを読み込み、構文解析を行って第1
中間テキストを生成する構文解析部と、第1中間テキス
トから原始プログラム中のループ構造を検出してベクト
ル化可能部分の認識を行い、ベクトル処理用の第2中間
テキストを生成するベクトル化処理部と、第2中間テキ
ストから目的プログラムを生成して出力するコード生成
部とから、その主要部が構成されていた。
このような従来のコンパイラは、例えば第12図に示す
ような原始プログラムが与えられた場合には、構文解析
部がこの原始プログラムを読み込んで第13図の流れ図
に示すような第1中間テキスト(ステップ321〜52
4)を生成し、ベクトル化処理部が第1中間テキストを
変形した第14図の流れ図に示すような第2中間テキス
ト(ステップS25,526)を生成し、コード生成部
が第2中間テキストを読み込んで並列実行可能部分をベ
クトル化した目的プログラムを生成していた。
ような原始プログラムが与えられた場合には、構文解析
部がこの原始プログラムを読み込んで第13図の流れ図
に示すような第1中間テキスト(ステップ321〜52
4)を生成し、ベクトル化処理部が第1中間テキストを
変形した第14図の流れ図に示すような第2中間テキス
ト(ステップS25,526)を生成し、コード生成部
が第2中間テキストを読み込んで並列実行可能部分をベ
クトル化した目的プログラムを生成していた。
ところが、従来のこの種のコンパイラでは、第4図に示
すような原始プログラムが与えられた場合には、配列A
に対する定義参照関係がDOループ内およびDoループ
の直前だけの情報では不明であるため、この範囲をベク
トル化不可能な文群として処理し、その部分をスカラ命
令により順次実行することを余儀なくされていた。
すような原始プログラムが与えられた場合には、配列A
に対する定義参照関係がDOループ内およびDoループ
の直前だけの情報では不明であるため、この範囲をベク
トル化不可能な文群として処理し、その部分をスカラ命
令により順次実行することを余儀なくされていた。
このように従来のコンパイラでは、Doループ内および
DOループの直前だけの情報では定義参照関係が確定で
きない配列要素の引用のある部分は一般的にはベクトル
化できず、並列実行不可能として処理されていたので、
目的プログラムのうちスカラ命令で実行される部分が多
くなり、プログラムの実行時間を大幅に短縮することが
できないという欠点があった。
DOループの直前だけの情報では定義参照関係が確定で
きない配列要素の引用のある部分は一般的にはベクトル
化できず、並列実行不可能として処理されていたので、
目的プログラムのうちスカラ命令で実行される部分が多
くなり、プログラムの実行時間を大幅に短縮することが
できないという欠点があった。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、DOループ内およびDOループの直
前だけの情報では定義参照関係が確定できない配列要素
の引用のある部分であっても、原始プログラムをDoル
ープの入口から遡って定義参照関係が定められるものに
ついてはベクトル化を行い、プログラムの実行時間の短
縮化を一層向上することのできるベクトル化処理方式を
提供することにある。
的とするところは、DOループ内およびDOループの直
前だけの情報では定義参照関係が確定できない配列要素
の引用のある部分であっても、原始プログラムをDoル
ープの入口から遡って定義参照関係が定められるものに
ついてはベクトル化を行い、プログラムの実行時間の短
縮化を一層向上することのできるベクトル化処理方式を
提供することにある。
本発明は上記の目的を達成するため、記憶域上に規則的
に並んでいるデータに対して一度に演算を行うベクトル
命令をもつベクトル処理プロセッサに対して、与えられ
た原始プログラムから目的プログラムを生成し出力する
コンパイラにおけるベクトル化処理方式において、 前記原始プログラムを読み込み構文解析を行って第1中
間テキストを生成する構文解析部と、前記第1中間テキ
ストから前記原始プログラムの制御の流れを解析する構
造解析手段、ループの入口での変数の定義状態を解析す
る入口変数解析手段、 前記入口変数解析手段の結果を利用して添字および指標
変数の情報を変形すると共に、ループ中に並列実行に矛
盾するデータ依存関係があるか否かを判定するデータ依
存関係判定手段、および、前記データ依存関係判定手段
により並列実行可能と判定された部分のベクトル化処理
用の文を含む第2中間テキストを生成するベクトルテキ
スト生成手段を備えたベクトル化処理部と、前記第2中
間テキストから目的プログラムを生成して出力するコー
ド生成部とを備えるようにしている。
に並んでいるデータに対して一度に演算を行うベクトル
命令をもつベクトル処理プロセッサに対して、与えられ
た原始プログラムから目的プログラムを生成し出力する
コンパイラにおけるベクトル化処理方式において、 前記原始プログラムを読み込み構文解析を行って第1中
間テキストを生成する構文解析部と、前記第1中間テキ
ストから前記原始プログラムの制御の流れを解析する構
造解析手段、ループの入口での変数の定義状態を解析す
る入口変数解析手段、 前記入口変数解析手段の結果を利用して添字および指標
変数の情報を変形すると共に、ループ中に並列実行に矛
盾するデータ依存関係があるか否かを判定するデータ依
存関係判定手段、および、前記データ依存関係判定手段
により並列実行可能と判定された部分のベクトル化処理
用の文を含む第2中間テキストを生成するベクトルテキ
スト生成手段を備えたベクトル化処理部と、前記第2中
間テキストから目的プログラムを生成して出力するコー
ド生成部とを備えるようにしている。
本発明のベクトル化処理方式にあっては、構文解析部が
原始プログラムを読み込み構文解析を行って第1中間テ
キストを生成し、ベクトル化処理部の構造解析手段が前
記第1中間テキストから前記原始プログラムの制御の流
れを解析し、入口変数解析手段がループの入口での変数
の定義状態を解析し、データ依存関係判定手段が前記入
口変数解析手段の結果を利用して添字および指標変数の
情報を変形すると共にループ中に並列実行に矛盾するデ
ータ依存関係があるか否かを判定し、ベクトルテキスト
生成手段が前記データ依存関係判定手段により並列実行
可能と判定された部分のベクトル化処理用の文を含む第
2中間テキストを生成し、コード生成部が前記第2中間
テキストから目的プログラムを生成して出力する。
原始プログラムを読み込み構文解析を行って第1中間テ
キストを生成し、ベクトル化処理部の構造解析手段が前
記第1中間テキストから前記原始プログラムの制御の流
れを解析し、入口変数解析手段がループの入口での変数
の定義状態を解析し、データ依存関係判定手段が前記入
口変数解析手段の結果を利用して添字および指標変数の
情報を変形すると共にループ中に並列実行に矛盾するデ
ータ依存関係があるか否かを判定し、ベクトルテキスト
生成手段が前記データ依存関係判定手段により並列実行
可能と判定された部分のベクトル化処理用の文を含む第
2中間テキストを生成し、コード生成部が前記第2中間
テキストから目的プログラムを生成して出力する。
次に、本発明の実施例につき図面を参照して説明する。
第1図は本発明のベクトル化処理方式を適用したコンパ
イラの一実施例を示す構成図である。第1図において、
コンパイラ2は、記憶域上に規則的に並んでいるデータ
に対して一度に演算を行うベクトル命令をもつベクトル
処理プロセッサに対して、与えられた高級言語で記述さ
れた原始プログラム1から目的プログラム3を生成して
出力する機能を有したものであり、原始プログラム1を
読み込んで構文解析を行い、第1中間テキスト24を生
成する構文解析部21と、第1中間テキスト24から原
始プログラム1中のループ構造を検出してヘクトル化可
能部分の認識を行い、ベクトル処理用の第2中間テキス
ト25を生成するベクトル化処理部22と、第2中間テ
キスト25から目的プログラム3を生成して出力するコ
ード生成部23とから構成されている。
イラの一実施例を示す構成図である。第1図において、
コンパイラ2は、記憶域上に規則的に並んでいるデータ
に対して一度に演算を行うベクトル命令をもつベクトル
処理プロセッサに対して、与えられた高級言語で記述さ
れた原始プログラム1から目的プログラム3を生成して
出力する機能を有したものであり、原始プログラム1を
読み込んで構文解析を行い、第1中間テキスト24を生
成する構文解析部21と、第1中間テキスト24から原
始プログラム1中のループ構造を検出してヘクトル化可
能部分の認識を行い、ベクトル処理用の第2中間テキス
ト25を生成するベクトル化処理部22と、第2中間テ
キスト25から目的プログラム3を生成して出力するコ
ード生成部23とから構成されている。
また、ベクトル化処理部22は、第1中間テキスト24
を読み込んで原始プログラム1の制御の流れを解析する
構造解析手段221と、ループの入口での変数の定義状
態を解析する入口変数解析手段222と、入口変数解析
手段222の結果を利用して添字および指標変数の情報
を変形すると共に、ループ中に並列実行に矛盾するデー
タ依存関係があるか否かを判定するデータ依存関係判定
手段223と、データ依存関係判定手段223によりベ
クトル化可能と判定された部分のベクトル処理用の文を
含む第2中間テキスト25を生成するベクトルテキスト
生成手段224とを含んで構成されている。
を読み込んで原始プログラム1の制御の流れを解析する
構造解析手段221と、ループの入口での変数の定義状
態を解析する入口変数解析手段222と、入口変数解析
手段222の結果を利用して添字および指標変数の情報
を変形すると共に、ループ中に並列実行に矛盾するデー
タ依存関係があるか否かを判定するデータ依存関係判定
手段223と、データ依存関係判定手段223によりベ
クトル化可能と判定された部分のベクトル処理用の文を
含む第2中間テキスト25を生成するベクトルテキスト
生成手段224とを含んで構成されている。
第2図および第3図は第1図の入口変数解析手段222
において変数の解析のために作成され、データ依存関係
判定手段223で参照される入口変数情報テーブル5お
よびトライアトロの論理的構成を示したものであり、入
口変数情報テーブル5は、 ・次の入口変数情報テーブルへのポインタ・変数テーブ
ルへのポインタ ・右辺の情報を示すトライアトへのポインタを含んでお
り、また、右辺の情報を示すトライアトロは、 ・演算子 ・第1オペランドへのポインタ ・第2オペランドへのポインタ を含んで構成されている。なお、第1番目の入口変数情
報テーブル5(51)を参照するためのポインタ4、な
らびに入口変数情報テーブル5(51,52,53,・
・・)およびトライアトロ(61゜62.63.・・・
)により指定される変数テーブル7 (71,72,7
3,74,・・・)および定数テーブル8(81,・・
・)が設けられている(第6図ないし第8図参照)。
において変数の解析のために作成され、データ依存関係
判定手段223で参照される入口変数情報テーブル5お
よびトライアトロの論理的構成を示したものであり、入
口変数情報テーブル5は、 ・次の入口変数情報テーブルへのポインタ・変数テーブ
ルへのポインタ ・右辺の情報を示すトライアトへのポインタを含んでお
り、また、右辺の情報を示すトライアトロは、 ・演算子 ・第1オペランドへのポインタ ・第2オペランドへのポインタ を含んで構成されている。なお、第1番目の入口変数情
報テーブル5(51)を参照するためのポインタ4、な
らびに入口変数情報テーブル5(51,52,53,・
・・)およびトライアトロ(61゜62.63.・・・
)により指定される変数テーブル7 (71,72,7
3,74,・・・)および定数テーブル8(81,・・
・)が設けられている(第6図ないし第8図参照)。
ここで、入口変数情報テーブル5とは、ループの入口以
前において出現する変数(入口変数)の情報を管理する
テーブルであり、ループの入口から逆順に出現する順番
で作成され、ポインタ4および各入口変数情報テーブル
5の次の入口変数情報テーブルへのポインタで相互に連
結されている。
前において出現する変数(入口変数)の情報を管理する
テーブルであり、ループの入口から逆順に出現する順番
で作成され、ポインタ4および各入口変数情報テーブル
5の次の入口変数情報テーブルへのポインタで相互に連
結されている。
また、変数テーブルへのポインタにより入口変数が変数
テーブルと関連付けられる。更に、右辺の情報を示すポ
インタによりトライアトロが指定される。
テーブルと関連付けられる。更に、右辺の情報を示すポ
インタによりトライアトロが指定される。
トライアトロは定義式の右辺の状態を示すものであり、
第1オペランドへのポインタが示す変数あるいは定数と
、第2オペランドへのポインタが示す変数あるいは定数
とが、演算子の示す演算で結合されていることを表現す
る。例えば、L=に+1 をトライアトロで表現する場合、 ・演算子−」− ・第1オペランドへのポインタ ー変数にの変数テーブルへのポインタ ・第2オペランドへのポインタ 一定数1の定数テーブルへのポインタ となる。また、 J=に の場合、 ・演算子→ASGN (Ass ION 、代入)・第
1オペランドへのポインタ →1tlkKの変数テーブルへのポインタ・第2オペラ
ンドへのポインタ→NUL Lとなる。
第1オペランドへのポインタが示す変数あるいは定数と
、第2オペランドへのポインタが示す変数あるいは定数
とが、演算子の示す演算で結合されていることを表現す
る。例えば、L=に+1 をトライアトロで表現する場合、 ・演算子−」− ・第1オペランドへのポインタ ー変数にの変数テーブルへのポインタ ・第2オペランドへのポインタ 一定数1の定数テーブルへのポインタ となる。また、 J=に の場合、 ・演算子→ASGN (Ass ION 、代入)・第
1オペランドへのポインタ →1tlkKの変数テーブルへのポインタ・第2オペラ
ンドへのポインタ→NUL Lとなる。
以下、上記の実施例の動作について説明する。
なお、従来のコンパイラではベクトル化できなかった第
4図の原始プログラムを具体例として説明する。
4図の原始プログラムを具体例として説明する。
第1図において、原始プログラム1が与えられてコンパ
イラ2が起動されると、先ず構文解析部21が原始プロ
グラム1を読み込んで第1中間テキスト24を生成する
。第4図の原始プログラムに対しては第5図に示すよう
な構造の第1中間テキスト(ステップ81〜510)が
出力される。
イラ2が起動されると、先ず構文解析部21が原始プロ
グラム1を読み込んで第1中間テキスト24を生成する
。第4図の原始プログラムに対しては第5図に示すよう
な構造の第1中間テキスト(ステップ81〜510)が
出力される。
次いで、ベクトル化処理部22は第1中間テキスト24
を入力し、構造解析手段221を起動する。
を入力し、構造解析手段221を起動する。
起動された構造解析手段221は以下の処理を行う。
■第1中間テキスト24を分岐を単位としたブロックに
分割する。
分割する。
■対象となるループ部分を文単位のブロックに分割する
。
。
■第1中間テキスト24からプログラム全体の制御の流
れを解析して各ブロックの関係を求める。
れを解析して各ブロックの関係を求める。
■各々のブロックで定義参照されている変数に対して、
その生死情報を収集する。
その生死情報を収集する。
構造解析手段221の処理が終了すると入口変数解析手
段222が起動され、入口変数解析手段222は以下の
処理を行う。
段222が起動され、入口変数解析手段222は以下の
処理を行う。
■ループが実行されるときに必ず実行されるブ0ツクを
DO小ループ入口から逆順に取り出し、その中で定義さ
れている変数を出現の逆順に取り出す。
DO小ループ入口から逆順に取り出し、その中で定義さ
れている変数を出現の逆順に取り出す。
■取り出した変数を定義している代入文の右辺に引用さ
れている変数の生死情報より、取り出した変数を入口変
数情報として登録できるか否か調べる。DO小ループ入
口ブロックから定義文のあるブロックまでどの経路を通
っても右辺に現れる変数は定義されていない場合には登
録できる。
れている変数の生死情報より、取り出した変数を入口変
数情報として登録できるか否か調べる。DO小ループ入
口ブロックから定義文のあるブロックまでどの経路を通
っても右辺に現れる変数は定義されていない場合には登
録できる。
■既に登録された入口変数情報テーブル等を検索して、
右辺のトライアトに登録しようとしている変数の引用が
ある場合、その変数引用を登録しようとした変数の右辺
のトライブトで置換する。
右辺のトライアトに登録しようとしている変数の引用が
ある場合、その変数引用を登録しようとした変数の右辺
のトライブトで置換する。
■登録可能な場合、同一変数に対する入口変数情報テー
ブルが作成されていなければ、作成する。
ブルが作成されていなければ、作成する。
ここで、第5図の第1中間テキストの場合には、代入文
J=K (ステップ34)について解析した状態で第6
図のように入口変数情報テーブル51およびトライアト
ロ1が作成され、変数テーブル71.72との対応付け
が行われる。また、代入文L=に+1 (ステップ3
3)について解析した状態で第7図のような状態となり
、代入文に=M+1 (ステップSl)について解析し
た状態で第8図のような状態となる。
J=K (ステップ34)について解析した状態で第6
図のように入口変数情報テーブル51およびトライアト
ロ1が作成され、変数テーブル71.72との対応付け
が行われる。また、代入文L=に+1 (ステップ3
3)について解析した状態で第7図のような状態となり
、代入文に=M+1 (ステップSl)について解析し
た状態で第8図のような状態となる。
次いで、入口変数解析手段222の処理が終了するとデ
ータ依存関係判定手段223が起動され、データ依存関
係判定手段223は以下の処理を行う。
ータ依存関係判定手段223が起動され、データ依存関
係判定手段223は以下の処理を行う。
■入口変数情報テーブルの情報を利用して添字および指
標変数の情報を変形する。
標変数の情報を変形する。
[相]ループ中に並列実行に矛盾するデータ依存関係が
あるか否かを判定する。
あるか否かを判定する。
ここで、第4図の原始プログラム(第5図の第1中間テ
キスト)の場合には、第9図の状態を経て第10図のよ
うに概念的に変形され、その結果、ループ中に並列実行
に矛盾するデータ依存関係が存在しないので、データ依
存関係なしと判定される。
キスト)の場合には、第9図の状態を経て第10図のよ
うに概念的に変形され、その結果、ループ中に並列実行
に矛盾するデータ依存関係が存在しないので、データ依
存関係なしと判定される。
次いで、データ依存関係判定手段223の処理が終了す
るとベクトルテキスト生成手段224が起動され、ベク
トルテキスト生成手段224は以下の処理を行う。
るとベクトルテキスト生成手段224が起動され、ベク
トルテキスト生成手段224は以下の処理を行う。
■並列実行可能部分をベクトル処理するために必要とな
るベクトル長設定用の文を第2中間テキスト25中に生
成する。
るベクトル長設定用の文を第2中間テキスト25中に生
成する。
■並列実行可能部分に対するベクトル処理用の文を第2
中間テキスト25中に生成する。
中間テキスト25中に生成する。
0ループ中の並列実行可能な部分をベクトル処理したと
きの指標変数の終値を保証するための文を第2中間テキ
スト25中に生成する。
きの指標変数の終値を保証するための文を第2中間テキ
スト25中に生成する。
ここで、第10図のように変形されたプログラムに対し
ては、第11図に示すような構造の第2中間テキスト(
ステップSll〜520)が生成される。すなわち、ベ
クトル長設定用の文として、ループの繰り返し数をベク
トル長として設定するvl=M(ステップ816)が生
成され、ベクトル処理用の文として、ステップS17,
318が生成され、指標変数1の終値を保証するための
文としてI=1+M(ステップ520)が生成され、指
標変数JについてはJ=J+2*M (ステップ519
)が生成される。
ては、第11図に示すような構造の第2中間テキスト(
ステップSll〜520)が生成される。すなわち、ベ
クトル長設定用の文として、ループの繰り返し数をベク
トル長として設定するvl=M(ステップ816)が生
成され、ベクトル処理用の文として、ステップS17,
318が生成され、指標変数1の終値を保証するための
文としてI=1+M(ステップ520)が生成され、指
標変数JについてはJ=J+2*M (ステップ519
)が生成される。
次いで、ベクトル化処理部22のベクトルテキスト生成
手段224における処理が終了すると、コード生成部2
3が起動され、コード生成部23は第2中間テキスト2
5の各文を対応するコードに変換し、目的プログラム3
が生成・出力される。
手段224における処理が終了すると、コード生成部2
3が起動され、コード生成部23は第2中間テキスト2
5の各文を対応するコードに変換し、目的プログラム3
が生成・出力される。
このようにして生成された目的プログラム3はベクトル
処理プロセッサに供給され、プログラムの実行が行われ
る。しかして、ベクトル処理プロセッサは、従来定義参
照関係が確定できずにスカラ命令で実行していた部分を
ベクトル命令で高速に実行することができ、プログラム
の実行時間が短縮されるものである。
処理プロセッサに供給され、プログラムの実行が行われ
る。しかして、ベクトル処理プロセッサは、従来定義参
照関係が確定できずにスカラ命令で実行していた部分を
ベクトル命令で高速に実行することができ、プログラム
の実行時間が短縮されるものである。
以上説明したように、本発明のベクトル化処理方式にあ
っては、DOループの入口での変数の定義状態を解析す
ることにより、DOループ内およびDOループの直前だ
けの情報では定義参照関係が確定できない配列要素の添
字に対しても確定を可能とし、ベクトル化を行うことが
できるため、ベクトル処理プロセッサにおけるプログラ
ムの実行時間を大幅に短縮できるという効果がある。
っては、DOループの入口での変数の定義状態を解析す
ることにより、DOループ内およびDOループの直前だ
けの情報では定義参照関係が確定できない配列要素の添
字に対しても確定を可能とし、ベクトル化を行うことが
できるため、ベクトル処理プロセッサにおけるプログラ
ムの実行時間を大幅に短縮できるという効果がある。
第1[fflは本発明のベクトル化処理方式を適用した
コンパイラの一実施例を示す構成図、第2図は変数の解
析に用いられる入口変数情報テーブルの論理的構成図、 第3図は変数の解析に用いられるトライアトの論理的構
成図、 第4図は原始プログラムの例を示す図、第5図は第4図
の原始プログラムに対応した第1中間テキストの概念図
、 第6図ないし第8図は変数の解析結果の表現の例を示す
図、 第9図および第10図は変形の加えられたプログラムの
概念図、 第11図は第4図の原始プログラムに対応した第2中間
テキストの概念図、 第12図は原始プログラムの例を示す図、第13図は第
12図の原始プログラムに対応した第1中間テキストの
概念図および、 第14図は第12図の原始プログラムに対応した第2中
間テキストの概念図である。 図において、 1・・・原始プログラム 2・・・コンパイラ 21・・・構文解析部 22・・・ベクトル化処理部 221・・・構造解析手段 222・・・入口変数解析手段 223・・・データ依存関係判定手段 224・・・ベクトルテキスト生成手段23・・・コー
ド生成部 24・・・第1中間テキスト 25・・・第2中間テキスト 3・・・目的)゛ログラム 4・・・ポインタ 1〜53・・・入口変数情報テーブル 1〜63・・・トライアト 1〜74・・・変数テーブル ト・・定数テーブル
コンパイラの一実施例を示す構成図、第2図は変数の解
析に用いられる入口変数情報テーブルの論理的構成図、 第3図は変数の解析に用いられるトライアトの論理的構
成図、 第4図は原始プログラムの例を示す図、第5図は第4図
の原始プログラムに対応した第1中間テキストの概念図
、 第6図ないし第8図は変数の解析結果の表現の例を示す
図、 第9図および第10図は変形の加えられたプログラムの
概念図、 第11図は第4図の原始プログラムに対応した第2中間
テキストの概念図、 第12図は原始プログラムの例を示す図、第13図は第
12図の原始プログラムに対応した第1中間テキストの
概念図および、 第14図は第12図の原始プログラムに対応した第2中
間テキストの概念図である。 図において、 1・・・原始プログラム 2・・・コンパイラ 21・・・構文解析部 22・・・ベクトル化処理部 221・・・構造解析手段 222・・・入口変数解析手段 223・・・データ依存関係判定手段 224・・・ベクトルテキスト生成手段23・・・コー
ド生成部 24・・・第1中間テキスト 25・・・第2中間テキスト 3・・・目的)゛ログラム 4・・・ポインタ 1〜53・・・入口変数情報テーブル 1〜63・・・トライアト 1〜74・・・変数テーブル ト・・定数テーブル
Claims (1)
- 【特許請求の範囲】 記憶域上に規則的に並んでいるデータに対して一度に演
算を行うベクトル命令をもつベクトル処理プロセッサに
対して、与えられた原始プログラムから目的プログラム
を生成し出力するコンパイラにおけるベクトル化処理方
式において、 前記原始プログラムを読み込み構文解析を行って第1中
間テキストを生成する構文解析部と、前記第1中間テキ
ストから前記原始プログラムの制御の流れを解析する構
造解析手段、 ループの入口での変数の定義状態を解析する入口変数解
析手段、 前記入口変数解析手段の結果を利用して添字および指標
変数の情報を変形すると共に、ループ中に並列実行に矛
盾するデータ依存関係があるか否かを判定するデータ依
存関係判定手段、および、前記データ依存関係判定手段
により並列実行可能と判定された部分のベクトル化処理
用の文を含む第2中間テキストを生成するベクトルテキ
スト生成手段を備えたベクトル化処理部と、 前記第2中間テキストから目的プログラムを生成して出
力するコード生成部とを備えたことを特徴とするベクト
ル化処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3587889A JPH02214974A (ja) | 1989-02-15 | 1989-02-15 | ベクトル化処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3587889A JPH02214974A (ja) | 1989-02-15 | 1989-02-15 | ベクトル化処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02214974A true JPH02214974A (ja) | 1990-08-27 |
Family
ID=12454259
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3587889A Pending JPH02214974A (ja) | 1989-02-15 | 1989-02-15 | ベクトル化処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02214974A (ja) |
-
1989
- 1989-02-15 JP JP3587889A patent/JPH02214974A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5230053A (en) | Processor scheduling method for iterative loops | |
| US5142681A (en) | APL-to-Fortran translators | |
| Fauth et al. | Automated generation of DSP program development tools using a machine description formalism | |
| JPH02214974A (ja) | ベクトル化処理方式 | |
| Ramamoorthy et al. | A higher level language for micro-programming | |
| JPH09288580A (ja) | ソースプログラムの最適化装置および最適化方法 | |
| JPH0748205B2 (ja) | ベクトル化処理方式 | |
| JPH0425969A (ja) | If文下定義配列ベクトル化コンパイル方式 | |
| JP2701246B2 (ja) | コンパイラのベクトル化処理方式 | |
| JP3047418B2 (ja) | ベクトル化処理方式 | |
| JPH03116241A (ja) | コンパイラ | |
| JPH0468664B2 (ja) | ||
| Saarikivi et al. | Translating C# to Branching Symbolic Transducers. | |
| Nobre et al. | Hardware/Software Compilation | |
| JPH11195011A (ja) | 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体 | |
| Henry et al. | Comparison of a graphical and a textual design language using software quality metrics | |
| JPH03220669A (ja) | 多重ループベクトル化コンパイル方式 | |
| JPS63186333A (ja) | 局所的分岐命令に対する命令のスケジユ−リング処理方式 | |
| JPH0950429A (ja) | コンパイラにおけるポインタベクトル化システム | |
| JPH05120323A (ja) | If文下ベクトル演算最適化方式 | |
| JPH0448382A (ja) | コンパイラのベクトル化処理方式 | |
| Arroyo | Restructuring of APL functions | |
| JPS6358574A (ja) | ベクトル化処理方式 | |
| JPH03144835A (ja) | プログラム単位時間当たり実行演算数計算方式 | |
| Critchley et al. | Symbolic Optimization and Analysis of Numerical Dynamics Solutions |