JPS63120368A - プログラム変換装置 - Google Patents
プログラム変換装置Info
- Publication number
- JPS63120368A JPS63120368A JP61266941A JP26694186A JPS63120368A JP S63120368 A JPS63120368 A JP S63120368A JP 61266941 A JP61266941 A JP 61266941A JP 26694186 A JP26694186 A JP 26694186A JP S63120368 A JPS63120368 A JP S63120368A
- Authority
- JP
- Japan
- Prior art keywords
- range
- sentence
- code
- vector
- statement
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、文相瓦間の依存関係のためにベクトル化不可
能であるようなループを除くループ(以下、文独立ルー
プ)中の両辺に同じ配列変数があられれ且つ添字が実行
時に決定しループ中で変化しない変数を含んでいるため
にベクトル化可能なループ範囲がコンパイル時に決定で
きないような文(以下、非決定性再帰文)を含むような
ソースプログラムの変換装置に関するものである。
能であるようなループを除くループ(以下、文独立ルー
プ)中の両辺に同じ配列変数があられれ且つ添字が実行
時に決定しループ中で変化しない変数を含んでいるため
にベクトル化可能なループ範囲がコンパイル時に決定で
きないような文(以下、非決定性再帰文)を含むような
ソースプログラムの変換装置に関するものである。
従来の技術
従来のベクトルコンパイラは、再帰文に関しては文独立
ループ中の決定性再帰文に関しては、右辺にあられれる
左辺と同じ配列変数のすべてに対して、ベクトル化可能
条件(以下、V条件)式(右辺添字−左辺添字)×ルー
プ増分≧0の右辺が0以上の定数である場合にはベクト
ル化を行う。
ループ中の決定性再帰文に関しては、右辺にあられれる
左辺と同じ配列変数のすべてに対して、ベクトル化可能
条件(以下、V条件)式(右辺添字−左辺添字)×ルー
プ増分≧0の右辺が0以上の定数である場合にはベクト
ル化を行う。
発明が解決しようとする問題点
しかし、非決定性再帰文に関してはいかなる場合にもベ
クトル化することができないという問題点があった0例
えば下記のようなりoループをコンパイルする場合を想
定する。
クトル化することができないという問題点があった0例
えば下記のようなりoループをコンパイルする場合を想
定する。
Do 10 I−1,100
A N +N) −A (2* I) ・・・・
・・■10 C0NTINUE この例では、■の決定性再帰文の■条件式は(2XI−
(++N))Xi≧O であり、これを変形すると I−N≧O となり、実行時にN< 100であれば1がN〜100
の範囲はベクトル化可能範囲(以下、■範囲)となる。
・・■10 C0NTINUE この例では、■の決定性再帰文の■条件式は(2XI−
(++N))Xi≧O であり、これを変形すると I−N≧O となり、実行時にN< 100であれば1がN〜100
の範囲はベクトル化可能範囲(以下、■範囲)となる。
しかし、従来のベクトルコンパイラではこの例のような
非決定性再帰文は全くベクトル化されなかった。
非決定性再帰文は全くベクトル化されなかった。
そこで本発明は、文独立ループ中の非決定性再帰文に関
しては、実行時に変数の値が決定した段階でV条件を解
くことでV範囲とベクトル化不可能範囲(以下、NV範
囲)を求め各範囲に対してそれぞれベクトル化した目的
コード(以下、■コード)とベクトル化しない目的コー
ド(以下、NVコード)選択実行できるような目的プロ
グラムを生成し、■範囲ではVコードで実行することが
できるようにするものである。
しては、実行時に変数の値が決定した段階でV条件を解
くことでV範囲とベクトル化不可能範囲(以下、NV範
囲)を求め各範囲に対してそれぞれベクトル化した目的
コード(以下、■コード)とベクトル化しない目的コー
ド(以下、NVコード)選択実行できるような目的プロ
グラムを生成し、■範囲ではVコードで実行することが
できるようにするものである。
問題点を解決するための手段
上記問題点を解決するための本発明の技術的な手段は従
来のベクトルコンパイラに、文独立ループ中の非決定性
再帰文を検出した場合に実行時に変数の値が決定した段
階で■条件を解くことで■範囲とNV範囲を求め、各範
囲に対してそれぞれVコードとNVコードを選択実行で
きるような目的プログラムを生成する手段を付加したも
のを主記憶装置中に格納するものである。
来のベクトルコンパイラに、文独立ループ中の非決定性
再帰文を検出した場合に実行時に変数の値が決定した段
階で■条件を解くことで■範囲とNV範囲を求め、各範
囲に対してそれぞれVコードとNVコードを選択実行で
きるような目的プログラムを生成する手段を付加したも
のを主記憶装置中に格納するものである。
作用
この技術的手段による作用は次のようになる。
ソースプログラムの文独立ループ中の非決定性再帰文を
検出した場合は、実行時に変数の値が決定した段階で■
条件を解くことでV範囲とNV範囲を求め、各範囲に対
してそれぞれVコードとNVコードを選択実行すること
ができるような目的プログラムが生成されるので、■範
囲ではベクトル処理が行われて実行時間が短縮される。
検出した場合は、実行時に変数の値が決定した段階で■
条件を解くことでV範囲とNV範囲を求め、各範囲に対
してそれぞれVコードとNVコードを選択実行すること
ができるような目的プログラムが生成されるので、■範
囲ではベクトル処理が行われて実行時間が短縮される。
実施例
以下、本発明の一実施例を図面を参照しながら説明する
。
。
第1図は本発明のハードウェア構成の一例を示すもので
ある。第1図において1は非決定性再帰文を含むソース
プログラムの変換手段を格納した主記憶装置、2は記憶
制御装置、3は中央処理装置、4はチャネルプロセッサ
、5はソースプログラム格納用大記憶装置、6は目的プ
ログラム格納用大記憶装置をあられしている。
ある。第1図において1は非決定性再帰文を含むソース
プログラムの変換手段を格納した主記憶装置、2は記憶
制御装置、3は中央処理装置、4はチャネルプロセッサ
、5はソースプログラム格納用大記憶装置、6は目的プ
ログラム格納用大記憶装置をあられしている。
第2図は、非決定性再帰文を含むソースプログラムの変
換手段の機能ブロック図である。ソース解釈部は、ソー
スプログラムを第1図、5の大証ta装置から入力して
、文を解釈して中間コードに変換する。記憶域割付部は
、プログラム中の各種データの番地割付を行う、ループ
処理部はプログラム中よりループを検出して、それに対
する処理を行い、中間コードを変更する部分である。目
的プログラム出力部は、変更後の中間コードを目的プロ
グラムに変換して第1図、6の大記憶装置に出力する部
分である。
換手段の機能ブロック図である。ソース解釈部は、ソー
スプログラムを第1図、5の大証ta装置から入力して
、文を解釈して中間コードに変換する。記憶域割付部は
、プログラム中の各種データの番地割付を行う、ループ
処理部はプログラム中よりループを検出して、それに対
する処理を行い、中間コードを変更する部分である。目
的プログラム出力部は、変更後の中間コードを目的プロ
グラムに変換して第1図、6の大記憶装置に出力する部
分である。
第3図は、第2図のループ処理部における処理の流れを
示すものである。全体としては、文独立ループ部分に関
してのみは中間コードを変更するという処理を行ってい
る。まずループ範囲を取り出す0次に、このループが文
独立であるかどうかチェックしながら、ループ中の各文
を非決定性再帰文とその他の文に分類しもどのコードに
その情報を付加したものをワークファイルへ出力する。
示すものである。全体としては、文独立ループ部分に関
してのみは中間コードを変更するという処理を行ってい
る。まずループ範囲を取り出す0次に、このループが文
独立であるかどうかチェックしながら、ループ中の各文
を非決定性再帰文とその他の文に分類しもどのコードに
その情報を付加したものをワークファイルへ出力する。
ここまでは従来の技術を用いて実現できる。続いてルー
プが文独立でなかった場合にはもとのコードをそのまま
出力する。ループが文独立であった場合にはワークファ
イルから一文ずつ読み込み、非決定性再帰文に関しては
後で説明する非決定性再帰文処理を行って中間コードを
変更し、その他の文に関しては既存のベクトルコンパイ
ラと同じ判断基準でベクトル処理を行う中間コードもし
くは逐次処理を行う中間コードに変更する。以上の処理
を繰り返し中間コード全体に変更を加える。
プが文独立でなかった場合にはもとのコードをそのまま
出力する。ループが文独立であった場合にはワークファ
イルから一文ずつ読み込み、非決定性再帰文に関しては
後で説明する非決定性再帰文処理を行って中間コードを
変更し、その他の文に関しては既存のベクトルコンパイ
ラと同じ判断基準でベクトル処理を行う中間コードもし
くは逐次処理を行う中間コードに変更する。以上の処理
を繰り返し中間コード全体に変更を加える。
第4図は、非決定性再帰文処理部分の処理の流れを示す
ものである。非決定性再帰文の右辺における左辺の配列
変数と同じ配列すべてに対して■条件式を作成する。そ
して、実行時に変数の値が決定した段階で■条件式を解
くことで■範囲とNV範囲を求め、各範囲でベクトル処
理と逐次処理を選択実行できるような中間コードに変更
する。
ものである。非決定性再帰文の右辺における左辺の配列
変数と同じ配列すべてに対して■条件式を作成する。そ
して、実行時に変数の値が決定した段階で■条件式を解
くことで■範囲とNV範囲を求め、各範囲でベクトル処
理と逐次処理を選択実行できるような中間コードに変更
する。
第5図は、最終的な目的プログラムにおける非決定性再
帰文の部分の処理の流れを示すものである。各V条件式
の解を求め、それらの交わりをとることで■範囲とNV
範囲を決定する。そしてV範囲ではVコードを、NV範
囲ではNVコードを選択実行する。
帰文の部分の処理の流れを示すものである。各V条件式
の解を求め、それらの交わりをとることで■範囲とNV
範囲を決定する。そしてV範囲ではVコードを、NV範
囲ではNVコードを選択実行する。
発明の効果
以上述べてきたように本発明には、文独立ループ中の非
決定性再帰文を■範囲ではVコードで実行させるような
目的プログラムを生成することで実行時間を短縮させる
という効果がある。
決定性再帰文を■範囲ではVコードで実行させるような
目的プログラムを生成することで実行時間を短縮させる
という効果がある。
第1図は本発明の一実施例であるハードウェアの構成図
、第2図は本発明のソースプログラムの変換手段の機能
ブロック図、第3図はループ処理部における処理の流れ
図、第4図は非決定性再帰文処理部分の処理の流れ図、
第5図は生成される目的プログラムの非決定性再帰文の
処理の流れ図である。 l・・・・・・非決定性再帰文を含むソースプログラム
の変換手段を格納した主記憶装置、2・・・・・・記憶
制御装置、3・・・・・・中央処理装置、4・・・・・
・チャネルプロセッサ、5・・・・・・ソースプログラ
ム格納用大記憶装置、6・・・・・・目的プログラム格
納用大記憶装置。 代理人の氏名 弁理士 中尾敏男 はか1名第3図 第4図
、第2図は本発明のソースプログラムの変換手段の機能
ブロック図、第3図はループ処理部における処理の流れ
図、第4図は非決定性再帰文処理部分の処理の流れ図、
第5図は生成される目的プログラムの非決定性再帰文の
処理の流れ図である。 l・・・・・・非決定性再帰文を含むソースプログラム
の変換手段を格納した主記憶装置、2・・・・・・記憶
制御装置、3・・・・・・中央処理装置、4・・・・・
・チャネルプロセッサ、5・・・・・・ソースプログラ
ム格納用大記憶装置、6・・・・・・目的プログラム格
納用大記憶装置。 代理人の氏名 弁理士 中尾敏男 はか1名第3図 第4図
Claims (1)
- ソースプログラム格納用大記憶装置と目的プログラム格
納用大記憶装置と主記憶装置を具備し、ソースプログラ
ムにおける文独立ループ中から非決定性再帰文を検出し
た場合、実行時に変数の値が決定した段階でその文のベ
クトル化可能条件を解くことでベクトル化可能範囲とベ
クトル化不可能範囲を求めて、それぞれの範囲に対して
ベクトル化した目的コードとベクトル化しない目的コー
ドを選択実行することができるような目的プログラムを
生成する手段を主記憶装置中に格納していることを特徴
とするプログラム変換装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61266941A JPS63120368A (ja) | 1986-11-10 | 1986-11-10 | プログラム変換装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61266941A JPS63120368A (ja) | 1986-11-10 | 1986-11-10 | プログラム変換装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63120368A true JPS63120368A (ja) | 1988-05-24 |
Family
ID=17437812
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61266941A Pending JPS63120368A (ja) | 1986-11-10 | 1986-11-10 | プログラム変換装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63120368A (ja) |
-
1986
- 1986-11-10 JP JP61266941A patent/JPS63120368A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4821181A (en) | Method for converting a source program of high level language statement into an object program for a vector processor | |
| US5598561A (en) | Optimizing compiler which generates multiple instruction streams to be executed in parallel | |
| JPH01108638A (ja) | 並列化コンパイル方式 | |
| KR20180034626A (ko) | 데이터 처리 그래프 컴파일 | |
| JP3539613B2 (ja) | ループ飛び出し文を含むループに対する配列サマリ解析方法 | |
| Walsh et al. | Paragen: a novel technique for the autoparallelisation of sequential programs using gp | |
| Kazi et al. | Coarse-grained speculative execution in shared-memory multiprocessors | |
| Anantharaman et al. | A hardware accelerator for speech recognition algorithms | |
| JPH05189472A (ja) | コンパイラのベクトル化処理方式 | |
| JPS63120368A (ja) | プログラム変換装置 | |
| JPH04293150A (ja) | コンパイル方法 | |
| JPS63120367A (ja) | プログラム変換装置 | |
| JPS63120369A (ja) | プログラム変換装置 | |
| JPH03135630A (ja) | 命令スケジューリング方式 | |
| JPH11242598A (ja) | コンパイル方法およびコンパイル装置ならびにオブジェクトプログラム実行方法およびオブジェクトプログラム実行装置ならびにプログラム記憶媒体 | |
| Bulavintsev | Flattening of data-dependent nested loops for compile-time optimization of gpu programs | |
| Weber et al. | A closer look at process-based simulation with stackless coroutines | |
| JPH0497484A (ja) | コンパイラのベクトル化処理方式 | |
| JP6907761B2 (ja) | コンパイラ | |
| JPH0713962A (ja) | コンパイラ装置 | |
| JP2000222369A (ja) | 並列/ベクトル化方法およびその手順が記録された記録媒体 | |
| JPH03136167A (ja) | 自動ベクトル化方式 | |
| JPH04220727A (ja) | ベクトル化処理方式 | |
| JPH04332044A (ja) | コンパイラのベクトル化処理方式 | |
| Ruz et al. | AND-PARALLEL EXECUTION OF PROLOG ON A DISTRIBUTED ARCHITECTURE |