JPS6027947A - コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式 - Google Patents
コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式Info
- Publication number
- JPS6027947A JPS6027947A JP13734383A JP13734383A JPS6027947A JP S6027947 A JPS6027947 A JP S6027947A JP 13734383 A JP13734383 A JP 13734383A JP 13734383 A JP13734383 A JP 13734383A JP S6027947 A JPS6027947 A JP S6027947A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- program
- intermediate text
- vectorized
- section
- 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
Links
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明は、複数の並列演算部をそなえたベクトル処理プ
ロセッサに対して、与えられたソース・プログラムから
目的プログラムを生成して供給するコンパイラにおいて
、ループ中にベクトル化の不可能な部分が一部存在する
場合、ベクトル化解析によりベクトル化可能なサブグル
ープとベクトル化不可能なスカシ・グループとに分割し
、スカシ・グループはループをかまえてスカシ命令のま
ま実行させるようにしたコンパイラにおけるベクトル化
不可部分を含むループのベクトル化方式に関するもので
ある。
ロセッサに対して、与えられたソース・プログラムから
目的プログラムを生成して供給するコンパイラにおいて
、ループ中にベクトル化の不可能な部分が一部存在する
場合、ベクトル化解析によりベクトル化可能なサブグル
ープとベクトル化不可能なスカシ・グループとに分割し
、スカシ・グループはループをかまえてスカシ命令のま
ま実行させるようにしたコンパイラにおけるベクトル化
不可部分を含むループのベクトル化方式に関するもので
ある。
例えば、第1図(ト)に示す如く、ベクトルAに属する
エレメントへ、α7.・・・・・・とベクトルBに属す
るエレメントh、、h2.・・・・・・との各エレメン
ト相互を加算して、ニレメンF C,、c2 、・・・
・・・をもつベクトルCを生成するような、ベクトル命
令を実行するベクトル処理プロセッサが存在している。
エレメントへ、α7.・・・・・・とベクトルBに属す
るエレメントh、、h2.・・・・・・との各エレメン
ト相互を加算して、ニレメンF C,、c2 、・・・
・・・をもつベクトルCを生成するような、ベクトル命
令を実行するベクトル処理プロセッサが存在している。
第1図囚図示の場合、第8番目のエレメント相互の加算
を行なうか否かをマスク・エレメントrrL1 、 T
nz +・・・・・・にて指示するようにされておシ、
第1図(J3)に−膜化して示す如き処理が行なわれる
。
を行なうか否かをマスク・エレメントrrL1 、 T
nz +・・・・・・にて指示するようにされておシ、
第1図(J3)に−膜化して示す如き処理が行なわれる
。
上記の如き処理を行なうベクトル処理プロセッサを有す
るデータ処理システムは、一実施例として第2図図示の
如きシステム構成をもっている。
るデータ処理システムは、一実施例として第2図図示の
如きシステム構成をもっている。
図中の符号1は主記憶装置、2はメモリ制御装置、3は
ベクトル処理プロセッサ、4はチャネル・プロセッサ、
5は大記憶装置、6はスカシ処理回路部、7はベクトル
処理回路部、8−0.8−1、・・・は夫々浮動小数点
データ舎レジスタ、9−0.9−1、・・・は夫々複数
個のデータ(エレメント・データ)を格能し得るベクト
ル・レジスタ、10−0.10−1、・・・は夫々複数
個のマスク・データ(マスク・エレメント・データ)を
格納し得るマスク・レジスタ、11はベクトル長レジス
タでおって各ベクトル会レジスタに格納されるエレメン
トの個数情報がセットされるもの、12−0.12−1
は夫六メモリ拳アクセス・パイプライン、13は加減算
ノ樗イブライン、14は乗算処理パイプライン、15は
除算処理パイプライン、16はマスク処理パイプライン
を表わしている。
ベクトル処理プロセッサ、4はチャネル・プロセッサ、
5は大記憶装置、6はスカシ処理回路部、7はベクトル
処理回路部、8−0.8−1、・・・は夫々浮動小数点
データ舎レジスタ、9−0.9−1、・・・は夫々複数
個のデータ(エレメント・データ)を格能し得るベクト
ル・レジスタ、10−0.10−1、・・・は夫々複数
個のマスク・データ(マスク・エレメント・データ)を
格納し得るマスク・レジスタ、11はベクトル長レジス
タでおって各ベクトル会レジスタに格納されるエレメン
トの個数情報がセットされるもの、12−0.12−1
は夫六メモリ拳アクセス・パイプライン、13は加減算
ノ樗イブライン、14は乗算処理パイプライン、15は
除算処理パイプライン、16はマスク処理パイプライン
を表わしている。
上記の如きベクトル処理プロセッサが処理を実行するに
当って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラムをコンパイルし目的プログラ
ムを生成することが行なわれる。当該コンパイルを行な
うコンパイラの構成は第3図を参照して後述されるが、
当該コンパイラによるコンパイル処理に当って、ループ
構造をもつプログラムにおいて、当該ループ内に例えば
どうしてもベクトル化(並列実行)の不可能な部分が現
われる場合がある。従来は、そのようなベクトル化の不
可能な要素がループの中に1ケ所でも存在すると、その
ループ全体をベクトル化不可とするのが一般的なやり方
であった。また、最近になって、一部改良されたものと
して、ループの中の複数の文単位、例えばIF文の争件
のきいた部分を1つのかたまりとすることによって、そ
の複数の文単位でベクトル化を不可とするやり方も提案
されている。
当って、当該プロセッサが実行するに適した形に、与え
られたソース・プログラムをコンパイルし目的プログラ
ムを生成することが行なわれる。当該コンパイルを行な
うコンパイラの構成は第3図を参照して後述されるが、
当該コンパイラによるコンパイル処理に当って、ループ
構造をもつプログラムにおいて、当該ループ内に例えば
どうしてもベクトル化(並列実行)の不可能な部分が現
われる場合がある。従来は、そのようなベクトル化の不
可能な要素がループの中に1ケ所でも存在すると、その
ループ全体をベクトル化不可とするのが一般的なやり方
であった。また、最近になって、一部改良されたものと
して、ループの中の複数の文単位、例えばIF文の争件
のきいた部分を1つのかたまりとすることによって、そ
の複数の文単位でベクトル化を不可とするやり方も提案
されている。
ベクトル化は、処理の高速化の手段としては有用テ、ス
ーパー・づンビュータの利用においては必須の要件であ
る。ソース・プログラムの状況によっては、ベクトル化
できない部分が出てくることは避けられないが、その部
分を如何に少なくし、如何に多くの部分をベクトル化す
るかが処理の高速化にとって重要なポイントに匁る。そ
の点において、従来は、先に述べたように、ループ中に
ベクトル化の不可能な部分が1ケ所でも存在すると、複
数の文単位例えばIF文ではその条件のきいた部分を1
かたまりとすることによってその部分をベクトル化不可
とするのが精一杯の技術であった。
ーパー・づンビュータの利用においては必須の要件であ
る。ソース・プログラムの状況によっては、ベクトル化
できない部分が出てくることは避けられないが、その部
分を如何に少なくし、如何に多くの部分をベクトル化す
るかが処理の高速化にとって重要なポイントに匁る。そ
の点において、従来は、先に述べたように、ループ中に
ベクトル化の不可能な部分が1ケ所でも存在すると、複
数の文単位例えばIF文ではその条件のきいた部分を1
かたまりとすることによってその部分をベクトル化不可
とするのが精一杯の技術であった。
以上のようにループ中に一部でもベクトル化不可の部分
があるということから、ループ全体をベクトル命令化不
可とすると、ベクトル認識率が低下し、また、複数の文
単位でループをかまえても、本来ベクトル化できる部分
までスカシ部分にしなければならないという問題がある
。
があるということから、ループ全体をベクトル命令化不
可とすると、ベクトル認識率が低下し、また、複数の文
単位でループをかまえても、本来ベクトル化できる部分
までスカシ部分にしなければならないという問題がある
。
本発明は、上記の考察に基づくものであって、ベクトル
化不可部分を持つループであっても、ベクトル化不可部
分以外の部分についてはベクトル化を行うようにしたコ
ンパイラにおけるベクトル化不可部分を含むループのベ
クトル化方式を提供することを目的とするものである。
化不可部分を持つループであっても、ベクトル化不可部
分以外の部分についてはベクトル化を行うようにしたコ
ンパイラにおけるベクトル化不可部分を含むループのベ
クトル化方式を提供することを目的とするものである。
そのために本発明のコンノベイラにおけるペクトル化不
可部分を含むループのベクトル化方式は、複数の並列演
算部をそなえると共に複数個のレジスタを少なくともそ
なえてベクトル命令を実行するベクトル処理プロセッサ
に対して、与えられたソース・プログラムから目的プロ
グラムを生成して供給するコンパイラにおいて、上記ソ
ース0プログラムの文解釈を行って中間テキストに展開
するソース解釈部、プログラム中に出現する各種データ
に記憶域内番地を割当てる記憶域割付は部、プログラム
中のループ構造を検出して並列実行可能部分の認識を行
いかつ上記中間テキスト変更を行うベクトル化部、中間
テキストのレベルで上記ベクトル処理プロセッサを有効
に利用するだめの最適化を施す中間テキスト最適化部、
中間テキストに現われたデータに実際の資源を割当てる
レジスタ使用決定部、及び目的プログラム出力部をそな
えてなり、更に上記ベクトル化部は、文毎にベクトル化
可能か否かを解析してベクトル化可能サブグループとベ
クトル化不可サブグループとに分割し、ベクトル化可能
サブグループについてはベクトル命令を生成し、ベクト
ル化不可サブグループについてはループ構造を生成して
当該サブグループの要素毎にマスク情報に従ったマスク
Φバスの生成及びスカシ・コードの生成を行うように構
成されたことを特徴とするものである。
可部分を含むループのベクトル化方式は、複数の並列演
算部をそなえると共に複数個のレジスタを少なくともそ
なえてベクトル命令を実行するベクトル処理プロセッサ
に対して、与えられたソース・プログラムから目的プロ
グラムを生成して供給するコンパイラにおいて、上記ソ
ース0プログラムの文解釈を行って中間テキストに展開
するソース解釈部、プログラム中に出現する各種データ
に記憶域内番地を割当てる記憶域割付は部、プログラム
中のループ構造を検出して並列実行可能部分の認識を行
いかつ上記中間テキスト変更を行うベクトル化部、中間
テキストのレベルで上記ベクトル処理プロセッサを有効
に利用するだめの最適化を施す中間テキスト最適化部、
中間テキストに現われたデータに実際の資源を割当てる
レジスタ使用決定部、及び目的プログラム出力部をそな
えてなり、更に上記ベクトル化部は、文毎にベクトル化
可能か否かを解析してベクトル化可能サブグループとベ
クトル化不可サブグループとに分割し、ベクトル化可能
サブグループについてはベクトル命令を生成し、ベクト
ル化不可サブグループについてはループ構造を生成して
当該サブグループの要素毎にマスク情報に従ったマスク
Φバスの生成及びスカシ・コードの生成を行うように構
成されたことを特徴とするものである。
以下、本発明の実施例を図面を参照しつつ説明する。
第3図は本発明に用いるコンパイラの1実施例構成を示
す図、第4図はソース−プログラムを中間テキストに移
してゆく態様を説明する図、第5図はソース・プログラ
ムをベクトル化してゆく態様を説明する図、第6図はソ
ース・プログラムを解析しスカシ・コードを生成してゆ
く態様を説明する図、第7図と第8図はベクトル化部に
よるスカシ・コード生成までの処理の流れを示す図で、
第3図において、17は大記憶装置に格納されているソ
ース・プログラム、18はコンノ(イラ、19はコンパ
イルされて大記憶装置上に格納される目的プログラム、
20はソース解釈部、21は記憶域割利は部、22はベ
クトル化部、23は中間テキスト最適化部、24はレジ
スタ使用決定部、25は目的プログラム出力部を表わし
ている。
す図、第4図はソース−プログラムを中間テキストに移
してゆく態様を説明する図、第5図はソース・プログラ
ムをベクトル化してゆく態様を説明する図、第6図はソ
ース・プログラムを解析しスカシ・コードを生成してゆ
く態様を説明する図、第7図と第8図はベクトル化部に
よるスカシ・コード生成までの処理の流れを示す図で、
第3図において、17は大記憶装置に格納されているソ
ース・プログラム、18はコンノ(イラ、19はコンパ
イルされて大記憶装置上に格納される目的プログラム、
20はソース解釈部、21は記憶域割利は部、22はベ
クトル化部、23は中間テキスト最適化部、24はレジ
スタ使用決定部、25は目的プログラム出力部を表わし
ている。
コンパイラ18は、大記憶装置からソース・プログラム
17を取込んで、所望の目的プログラム19を生成する
。このとき図示の各部は次のような処理を行う。
17を取込んで、所望の目的プログラム19を生成する
。このとき図示の各部は次のような処理を行う。
即ち、ソース解釈部20はソース・プログラム17を大
記憶装置から取込み、文解釈を行って中間テキストに展
開する。例えばソース・プログラムが第4図図示左側の
如き場合に図示右側に示す如き中間テキストに展開する
。記憶域割付は部21はプログラム内に出現する各種デ
ータに対応して記憶域内番地を割当てる。ベクトル化部
22は、プログラム中のループ構造を検出し、並列実行
可能部分を認識し、第5図図示の如く中間テキスト変更
を行う。中間テキスト最適化部23は、中間テキストの
レベルで、第2図図示の如きベクトル処理プロセッサを
有効に利用するための最適化を施す。レジスタ使用決定
部24は、中間テキストに現われたデータに対して、ベ
クトル処理プロセッサ上の資源(レジスタ)を割当てる
。そして目的プログラム出力部25は、機械命令語を大
記憶装置へ出力しかつ命令語レベルでの最適化を行う。
記憶装置から取込み、文解釈を行って中間テキストに展
開する。例えばソース・プログラムが第4図図示左側の
如き場合に図示右側に示す如き中間テキストに展開する
。記憶域割付は部21はプログラム内に出現する各種デ
ータに対応して記憶域内番地を割当てる。ベクトル化部
22は、プログラム中のループ構造を検出し、並列実行
可能部分を認識し、第5図図示の如く中間テキスト変更
を行う。中間テキスト最適化部23は、中間テキストの
レベルで、第2図図示の如きベクトル処理プロセッサを
有効に利用するための最適化を施す。レジスタ使用決定
部24は、中間テキストに現われたデータに対して、ベ
クトル処理プロセッサ上の資源(レジスタ)を割当てる
。そして目的プログラム出力部25は、機械命令語を大
記憶装置へ出力しかつ命令語レベルでの最適化を行う。
ベクトル処理プロセッサを稼動させるだめのコンパイラ
は第3図図示の如き構成をもっており、一般にはループ
構成内のプログラムについては第5図図示の如く並列可
能な形にして処理(ベクトル化)してゆくことが可能で
ある。しかし、第6図(α)図示の如きソース拳プログ
ラムが与えられると、■と■の文はベクトル化が可能で
あるが、■と■の文はベクトル化が不可能である。この
ような場合、従来は、■と■の文がベクトル化不可であ
ることから、IF文の売件のきいたのないし■の文のす
べてをまとめてベクトル化不可とし、スカシで実行して
いたが、本発明は、■と■のみをベクトル化不可の部分
として認識し、そこだけをスカシで実行する。その際、
■の文で定義されるマスク情報をスカシ・ルーズの内部
で参照する。
は第3図図示の如き構成をもっており、一般にはループ
構成内のプログラムについては第5図図示の如く並列可
能な形にして処理(ベクトル化)してゆくことが可能で
ある。しかし、第6図(α)図示の如きソース拳プログ
ラムが与えられると、■と■の文はベクトル化が可能で
あるが、■と■の文はベクトル化が不可能である。この
ような場合、従来は、■と■の文がベクトル化不可であ
ることから、IF文の売件のきいたのないし■の文のす
べてをまとめてベクトル化不可とし、スカシで実行して
いたが、本発明は、■と■のみをベクトル化不可の部分
として認識し、そこだけをスカシで実行する。その際、
■の文で定義されるマスク情報をスカシ・ルーズの内部
で参照する。
即ち、ソース・プログラムとして第6図(α)に示すよ
うなものが与えられると、ベクトル化解析を行って、第
6図(h)に示すように、ベクトル化可能サブグループ
(Vとされたサブグループ)とベクトル化不可サブグル
ープ(Sとされたサブグループ)に分割する。そして、
第6図(C)に示すように、ベクトル化可能サブグルー
プについてはベクトル命令生成を行い、ベクトル化不可
サブグループについてはスカシ・ループ生成を行い、そ
の内部でマスク情報を参照してマスク情報に応じスカシ
命令のまま実行させるようにする。
うなものが与えられると、ベクトル化解析を行って、第
6図(h)に示すように、ベクトル化可能サブグループ
(Vとされたサブグループ)とベクトル化不可サブグル
ープ(Sとされたサブグループ)に分割する。そして、
第6図(C)に示すように、ベクトル化可能サブグルー
プについてはベクトル命令生成を行い、ベクトル化不可
サブグループについてはスカシ・ループ生成を行い、そ
の内部でマスク情報を参照してマスク情報に応じスカシ
命令のまま実行させるようにする。
次に、コンパイラにおけるベクトル化部による本発明の
処理の流れを第7図及び第8図を参照しつつ説明する。
処理の流れを第7図及び第8図を参照しつつ説明する。
■ ベクトル化解析を行う。即ち、ソース・プログラム
をベクトル化可能なサブグループとベクトル化不可能な
サブグループとに分割する。
をベクトル化可能なサブグループとベクトル化不可能な
サブグループとに分割する。
次に■の処理を行う。
■ サブグループを取り出す。次に■の処理を行う。
■ ベクトル化可能なサブグループか否かを調ぺる。
Yesの場合には■の処理を行い、Noの場合には■の
処理を行う。
処理を行う。
■ ベクトル命令生成を行う。次に■の処理に戻る。
■ スカシ・ループ生成を行う。次に■の処理に戻る。
次にスカシ・ループの生成処理を第8図を参照しつつ説
明する。
明する。
■ ループ構造の生成を行う。次に■の処理を行う。
■ サブグループ要素を取υ出す。次に■の処理を行う
。なお、サブグループ要素がない場合にはループ構造完
結とし、リターン(RETURN)処理を行う。
。なお、サブグループ要素がない場合にはループ構造完
結とし、リターン(RETURN)処理を行う。
■ ベクトル化不可能なサブグループの各要素のマスク
情報と、現在の環境になっているマスク情報とを比較し
、一致しているか否かを調べる。
情報と、現在の環境になっているマスク情報とを比較し
、一致しているか否かを調べる。
Yesの場合には[相]の処理を行い、NOの場合には
■の処理を行う。
■の処理を行う。
■ 現マスク・バスを生成する。次に[相]の処理を行
う。
う。
[相] スカシ・コードを生成する。次に■の処理に戻
る。
る。
以上の説明から明らかなように、本発明によれば、ベク
トル化できない部分を残してすべてベクトル化されるの
で、ベクトル化率が増大し、実行性能の向上を図ること
ができる。
トル化できない部分を残してすべてベクトル化されるの
で、ベクトル化率が増大し、実行性能の向上を図ること
ができる。
第1図はベクトル命令に対応した処理を概念的に説明す
る図、第2図はベクトル処理プロセッサを有する処理シ
ステムの1例を示す図、第3図は本発明に用いるコンパ
イラの1実施例構成を示す図、第4図はソース争プログ
ラムを中間テキストに移してゆく態様を説明する図、第
5図はソース・プログラムをベクトル化してゆく態様を
説明する図、第6図はソース・プログラムを解析しスカ
シ・コードを生成してゆく態様を説明する図、第7図と
第8図はベクトル化部によるスカシ・コード生成までの
処理の流れを示す図である。 l・・・主記憶装置、2・・・メモリ制御装置、3・・
・ベクトル処理フロセッサ、4・・・チャネルeプロセ
ッサ、5・・・大記憶装置、6・・・スカシ処理回路部
、7・・・ベクトル処理回路部、+3−0ないし8−
n・・・浮動小数点デーf・レジスタ、9−0ないし9
−ル・・・ベクトル・レジスタ、1o−oないし]、
Q −n・・・マスク・レジスタ、11・・・ベクトル
長レジスタ、12−0と12−1・・・メモリ・アクセ
ス・ノくイブライン、13・・・加減算バイグライン、
14・・・乗算処理パイプライン、15・・・除算処理
ノ(イブライン、16・・・マスク処理パイプライン、
17・・・ソース・プログラム、18・・・コンノ々イ
ラ、19・・・目的プログラム、20・・・ソース解釈
部、21・・・記憶域割伺は部%22・・・ベクトル化
部、23・・・中間テキスト最適化部、24・・・レジ
スタ使用決定部、25・・・目的プログラム出力部。 ズ 3 図 ′1′4図 :′A’ S 図 ゲ 61力 (0−) ブ7 (2) イ 8 (2) 手続補正書(審食請求時) (特許庁審査官 殿) 1、事件の表示 昭和58年特許願第137343号3
、袖正をする者 事件との関係 特許出願人 住 所 神奈川県用崎市中11.it区上小I+−11
111015番地氏 名 (522)富士通株式会社 代表者 11.1 本 卓 眞 4、代理人 方式6ハ 補 正 の 内 容 1. 明細書の特許請求の範囲の欄を下記のように補正
する。 「複数の並列演算部をそなえると共に複数個のレジスタ
を少なくともそなえてベクトル命令を実行するベクトル
処理プロセッサに対して、与えられたソース・プログラ
ムから目的プログラムを生成して供給するコンパイラに
おいて、上記ソース・プログラムの文解釈を行って中間
テキストに展開するソース解釈部、プログラム中に出現
する各種データに記憶域内番地を割当てる記憶域割付は
部、プログラム中のループ構造を検出して並列実行可能
部分の認識を行いかつ上記中間テキスト変更を行うベク
トル化部、中間テキストのレベルで上記ベクトル処理プ
ロセッサを有効に利用するための最適化を施す中間テキ
スト最適化部、中間テキストに現われたデータに実際の
資源を割当てるレジスタ使用決定部、及び目的プログラ
ム出力部をそなえてなシ、更に上記ベクトル化部は、中
間テキスト毎にベクトル化可能か否かを解析してベクト
ル化可能サブグループとベクトル化不可サブグループと
に分割し、ベクトル化可能サブグループについてはベク
トル−#J令を生成し、ベクトル化不可サブグループに
ついてはループ構造を生成して当該サブグループの要素
毎にマスク情報に従ったマスク・パスの生成及びスカシ
・コードの生成を行うように構成されたことを特徴と′
1−るコンパイラにおけるベクトル化不可部分を含むル
ープのベクトル化方式。」 2、 明細書第7頁第17行の1文毎に」を「中間テキ
スト毎に」と補正する。 以 上
る図、第2図はベクトル処理プロセッサを有する処理シ
ステムの1例を示す図、第3図は本発明に用いるコンパ
イラの1実施例構成を示す図、第4図はソース争プログ
ラムを中間テキストに移してゆく態様を説明する図、第
5図はソース・プログラムをベクトル化してゆく態様を
説明する図、第6図はソース・プログラムを解析しスカ
シ・コードを生成してゆく態様を説明する図、第7図と
第8図はベクトル化部によるスカシ・コード生成までの
処理の流れを示す図である。 l・・・主記憶装置、2・・・メモリ制御装置、3・・
・ベクトル処理フロセッサ、4・・・チャネルeプロセ
ッサ、5・・・大記憶装置、6・・・スカシ処理回路部
、7・・・ベクトル処理回路部、+3−0ないし8−
n・・・浮動小数点デーf・レジスタ、9−0ないし9
−ル・・・ベクトル・レジスタ、1o−oないし]、
Q −n・・・マスク・レジスタ、11・・・ベクトル
長レジスタ、12−0と12−1・・・メモリ・アクセ
ス・ノくイブライン、13・・・加減算バイグライン、
14・・・乗算処理パイプライン、15・・・除算処理
ノ(イブライン、16・・・マスク処理パイプライン、
17・・・ソース・プログラム、18・・・コンノ々イ
ラ、19・・・目的プログラム、20・・・ソース解釈
部、21・・・記憶域割伺は部%22・・・ベクトル化
部、23・・・中間テキスト最適化部、24・・・レジ
スタ使用決定部、25・・・目的プログラム出力部。 ズ 3 図 ′1′4図 :′A’ S 図 ゲ 61力 (0−) ブ7 (2) イ 8 (2) 手続補正書(審食請求時) (特許庁審査官 殿) 1、事件の表示 昭和58年特許願第137343号3
、袖正をする者 事件との関係 特許出願人 住 所 神奈川県用崎市中11.it区上小I+−11
111015番地氏 名 (522)富士通株式会社 代表者 11.1 本 卓 眞 4、代理人 方式6ハ 補 正 の 内 容 1. 明細書の特許請求の範囲の欄を下記のように補正
する。 「複数の並列演算部をそなえると共に複数個のレジスタ
を少なくともそなえてベクトル命令を実行するベクトル
処理プロセッサに対して、与えられたソース・プログラ
ムから目的プログラムを生成して供給するコンパイラに
おいて、上記ソース・プログラムの文解釈を行って中間
テキストに展開するソース解釈部、プログラム中に出現
する各種データに記憶域内番地を割当てる記憶域割付は
部、プログラム中のループ構造を検出して並列実行可能
部分の認識を行いかつ上記中間テキスト変更を行うベク
トル化部、中間テキストのレベルで上記ベクトル処理プ
ロセッサを有効に利用するための最適化を施す中間テキ
スト最適化部、中間テキストに現われたデータに実際の
資源を割当てるレジスタ使用決定部、及び目的プログラ
ム出力部をそなえてなシ、更に上記ベクトル化部は、中
間テキスト毎にベクトル化可能か否かを解析してベクト
ル化可能サブグループとベクトル化不可サブグループと
に分割し、ベクトル化可能サブグループについてはベク
トル−#J令を生成し、ベクトル化不可サブグループに
ついてはループ構造を生成して当該サブグループの要素
毎にマスク情報に従ったマスク・パスの生成及びスカシ
・コードの生成を行うように構成されたことを特徴と′
1−るコンパイラにおけるベクトル化不可部分を含むル
ープのベクトル化方式。」 2、 明細書第7頁第17行の1文毎に」を「中間テキ
スト毎に」と補正する。 以 上
Claims (1)
- 複数の並列演算部をそなえると共に複数個のレジスタを
少なくともそなえてベクトル命令を実行するベクトル処
理プロセッサに対して、与えられたソース・プログラム
から目的プログラムを生成して供給するコンパイラにお
いて、上記ソース・プログラムの文解釈を行って中間テ
キストに展開するソース解釈部、プログラム中に出現す
る各種データに記憶域内番地を割当てる記・境域割付は
部、プログラム中のループ構造を検出して並列実行可能
部分の認識を行いかつ上記中間テキスト変更を行つベク
トル化部、中間テキストのレベルで上記ベクトル処理プ
ロセッサを有効に利用するための最適化を施す中間テキ
スト最適化部、中間テキストに現われたデータに実際の
資源を割当てるレジスタ使用決定部、及び目的プログラ
ム出力部をそなえてなシ、更に上記ベクトル化部は、文
毎にベクトル化可能か否かを解析してベクトル化可能サ
ブグループとベクトル化不可サブグループとに分割し、
ベクトル化可能サブグループについてはベクトル命令を
生成し、ベクトル化不可サブグループについてはループ
構造を生成して当該サブグループの要素毎にマスク情報
に従りたマスク・パスの生成及びスカラ・コードの生成
を行うように構成されたことを特徴とするものである。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13734383A JPS6027947A (ja) | 1983-07-27 | 1983-07-27 | コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13734383A JPS6027947A (ja) | 1983-07-27 | 1983-07-27 | コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6027947A true JPS6027947A (ja) | 1985-02-13 |
JPH037989B2 JPH037989B2 (ja) | 1991-02-04 |
Family
ID=15196421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13734383A Granted JPS6027947A (ja) | 1983-07-27 | 1983-07-27 | コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6027947A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6477434A (en) * | 1987-09-17 | 1989-03-23 | Fujitsu Ltd | Dc power device |
-
1983
- 1983-07-27 JP JP13734383A patent/JPS6027947A/ja active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6477434A (en) * | 1987-09-17 | 1989-03-23 | Fujitsu Ltd | Dc power device |
Also Published As
Publication number | Publication date |
---|---|
JPH037989B2 (ja) | 1991-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05143332A (ja) | 命令スケジユーラを備えたコンピユータ・システム及び入力命令シーケンスを再スケジユールする方法 | |
Sampaio et al. | Divergence analysis | |
Ebcioglu et al. | Optimizations and oracle parallelism with dynamic translation | |
Jacob et al. | Python programmers have GPUs too: automatic Python loop parallelization with staged dependence analysis | |
Krzikalla et al. | Dynamic SIMD vector lane scheduling | |
Reppy | Optimizing nested loops using local CPS conversion | |
Tang et al. | Automatically partitioning threads for multithreaded architectures | |
JPS6027947A (ja) | コンパイラにおけるベクトル化不可部分を含むル−プのベクトル化方式 | |
Roh et al. | An Evaluation of Optimized Threaded Code Generation. | |
JPS59165147A (ja) | コンパイラにおける条件文のベクトル命令化方式 | |
Szustak et al. | Toward parallel modeling of solidification based on the generalized finite difference method using Intel Xeon Phi | |
Foley et al. | Efficient partitioning of fragment shaders for multiple-output hardware | |
Sohn et al. | Data and workload distribution in a multithreaded architecture | |
JPS6321946B2 (ja) | ||
Ramamoorthy et al. | A higher level language for micro-programming | |
JPS6319906B2 (ja) | ||
JP2556148B2 (ja) | ベクトルレジスタ割付け方式 | |
Jacobi | Code generation and the Lilith architecture | |
JPS6319908B2 (ja) | ||
JPH06103462B2 (ja) | ベクトル・レングス制御範囲分割処理方式 | |
Xu et al. | Efficient Exploitation of Hyper Loop Parallelism in Vectorization | |
Thornley | Integrating parallel dataflow programming with the Ada tasking model | |
JPH046020B2 (ja) | ||
JPS59180669A (ja) | 領域不変ベクトルの割付方式 | |
JPH0142019B2 (ja) |