JPS63304325A - 並列化コンパイル方法 - Google Patents

並列化コンパイル方法

Info

Publication number
JPS63304325A
JPS63304325A JP62139729A JP13972987A JPS63304325A JP S63304325 A JPS63304325 A JP S63304325A JP 62139729 A JP62139729 A JP 62139729A JP 13972987 A JP13972987 A JP 13972987A JP S63304325 A JPS63304325 A JP S63304325A
Authority
JP
Japan
Prior art keywords
loop
induction
tolerance
induction variable
variable
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
JP62139729A
Other languages
English (en)
Other versions
JP3053092B2 (ja
Inventor
Kyoko Iwazawa
岩澤 京子
Giichi Tanaka
義一 田中
Shizuo Goto
志津雄 後藤
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62139729A priority Critical patent/JP3053092B2/ja
Priority to US07/201,772 priority patent/US5067068A/en
Publication of JPS63304325A publication Critical patent/JPS63304325A/ja
Application granted granted Critical
Publication of JP3053092B2 publication Critical patent/JP3053092B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • G06F8/452Loops

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、並列計算機システムに係り、特に遂行実行型
の高級言語から、並列に実行するのに好適なオブジェク
トプログラムを生成する方式に関する。
〔従来の技術〕
コンパイラの最適化の対象としてのループ基本インダク
シヨン変数とは次のように定義することができる。ルー
プにおいて、各繰り返し回数で再帰的に定義され、ルー
プの繰り返し回数工の関数である。
典型的な例では、次のようなプログラムが書ける。Do
  10  I=1.v K=に十A (1) J=J+1 1 0  CONTINUE ループ制御変数工をはじめとして、FORTRANのソ
ースプログラムには、このような形で定義される計算の
出現頻度は非常に高い、しかも、ループの回数に同期し
て変化する。このような性質を利用して、従来の逐次型
計算機のためには種々の最適化手法が研究されており、
A、V、Aho  J、D。
Llllmanの“Pr1nciples of Co
mpiler Design”にもP2S5−P471
に1nduction variablaelemin
ationとして論じられている。
これらの手法は、逐次的に実行する計算機に付しては、
有効であるが、並列処理に対する最適化と言うことはで
きず、並列処理向上にインダクシヨン変数の最適化につ
いて論じているものはない。
本発明の適用対象は、以下のような条件を満たす基本イ
ンダクシヨン変数に限る。
(2)aはループが繰り返されても値が変わらない、ル
ープ不変変数である。
このような基本インダクシヨン変数を以下イオダクショ
ン変数と呼ぶ。
〔発明が解決しようとする問題点〕
従来技術では、再帰的に定義されるインダクシヨン変数
の計算は、逐次的に実行されるか又は、プロセッサ間の
ネットワーク通信を利用して行なわれてきた。しかし、
数値計算の分野で用いられるFORTRAN言語は、D
Oループの制御変数をはじめとして、配列の添字など、
再帰的な定義されるインダクシヨン変数がしばしば現れ
、これらについて最適化を施すことが、オブジェクト性
能の向上にもつながる。しかし、DOループの繰り返し
を並列に実行する並列計算機システムにおいては、これ
らのインダクシヨン変数の最適化について配慮されてい
ない。
たとえば、第3図のようなプログラムで、D。
10ループやDo30ループについて、ループの繰り返
し回数ごとに並列に行なうと次のような障害が起こる0
文17がJの定義式であるが、ループの1回目の実行を
行うためには、ループのI −1回目に計算したJの値
を使う、第12図のように並列に実行するためには、I
−1回目の計算を実行するプロセッサから1回目の計算
を実行するプロセッサへ、Jの値を転送しなければなら
ない。
従って、各プロセッサ間の通信手段の無い並列機では並
列実行することができず1通信手段があっても、1回前
の計算が終われるのを待つため並列性は損われ、さらに
、データの通信のために時間がかかる。これは、文18
のRや、文24のIAにも同様である。1回目に計算し
た値を用いて、新たな値を定義する。再帰的な定義は、
このように、並列処理にとっては、逐次処理に比べ、実
行効率劣化の大きな要因となる。
本発明の目的は、これらFORTRANプログラムにし
ばしば出現する再帰的なインダクシヨン変数の計算を、
再帰性が無くなるよう、ループ回数を用いた式に変換し
、プロセッサ間の通信を行うことなく並列に実行するオ
ブジェクトを生成することである。
〔問題点を解決するための手段〕
上記目的は、コンパイラの並列処理部において、インダ
クシヨン変数検出部と、初期値生成部と。
公差・公比生成部と、式変換部を設けることにより達成
される。
インダクシヨン変数検出部は、先立つ処理により検出し
た並列化の対象とするループについて、再帰的に定義さ
れているインダクシヨン変数を検出し、該インダクシヨ
ン変数の値がループ繰り返し回数と、ループ実行中値が
変わらないループ不変変数のみによって計算できるか否
かを判定する。
初期値生成部は、前記条件を満足したインダクシヨン変
数の初期値を設定するコードを生成する。
公差・公比生成部は、前記条件を満足したインダクシヨ
ン変数の公差値か又は公比値を設定するコードを生成す
る。
式変換部は、再帰的に定義されていたインダクシヨン変
数の定義式を、ループ不変な初期値と、公差値または公
比値を用いた定義式に変換する。
以上のようにして、再帰的な定義式を、再帰的ではない
定義式に変換することができ、その結果この計算を通信
を使うことなく、並列に実行できるようになる。
〔作用〕
インダクシヨン変数の検出部、初期値生成部、公差・公
比生成部、定義式変換部は、ループ中にあるインダクシ
ヨン変数に対して、以下のように作用する。
インダクシヨン変数の検出部は、第3図の並列化対象ル
ープDolOについては、インダクシヨン変数JとRを
検出する。もう1つの並列化対象ループD030につい
ては、インダクシヨン変数IAを検出する。
初期値生成部は、第3図のDolOループのJとRに対
しては、ループに入る前のJとRの値を保持する新しい
変数JφおよびRφを用いて、初期値を定義する式を生
成する。もう1つの並列化対象ループD o 30につ
いては、IAの初期値1を検出する。
公差・公比生成部は、第3図のD010ループのJにつ
いては公差5を、Rについては公比Aを検出する。Do
30ループのIAについては公差■−(I+1)/2を
生成する。
大変換部は、ループ繰り返し回数とループで値の変わら
ない不変式を用いた式に変換する。第3図のDolOル
ープのJについては、J=J+5をJ=Jφ+5傘工で
置換し、Rについては、R=Rφ拳A傘傘工で置換する
。Do30ル−プのIAについては、IA=1+I傘(
I−1)/2を挿入する。
上記のようにして、インダクシヨン変数の再帰性を除き
、プロセッサ間でデータの通信を行なうことなく並列に
実行することができる。
〔実施例〕
以下、本発明のFORTRANコンパイラにおける実施
例を図表を参照しつつ説明する。
第2図に、本発明を適用するコンパイラ全体の構造を示
す、第2図の構文解析部9がFORTRANのソースプ
ログラム12を入力し、これを中間語6に変換する。中
間部10はこれを入力として、最適化や並列化を行い、
中間語6を変形する。コード生成部11は、中間部10
が変形した中間語からオブジェクトコード13を生成す
る0本発明は中間部10に係り、オブジェクトコード7
の並列実行できる部分をふやすことにより実行効率を上
げるものである。
第2図の中間部10のうち、並列化のための式変換に係
わる部分の構成を第1図に示す、第2図の入力するソー
スプログラム12の例として、第3図にFORTRAN
プログラムをあげ、説明する。第3図のFORTRAN
プログラムから、DolOのループとDo30のループ
を並列に実行するプログラムを生成する。
第1図において、インダクシヨン変数検出部2は、ソー
スプログラムを構文解析した中間語6を入力として、第
4図のフローチャートのように動作し、第5図に示すイ
ンダクシヨンテーブル7を作る。
インダクシヨン変数検出処理は並列処理対象のループの
中の最内側ループから、並列処理対象ループに至るまで
順次、行なう、まず処理28が。
D o 10のループを処理対象とする。処理29が基
本インダクシヨン変数として、ループ制御変数Iを検出
し、処理30がIのレコード39を作る。
処理31の判定を経て、処理29が基本インダクシヨン
変数Jの定義文17を検出し、処理30がJのレコード
40を作る。同様に、処理30が、Rのレコード41を
作る。
D o 30のループについては、処理28が、まずD
 o 20を処理対象ループとして、Jのレコード44
.IBのレコード45、IAのレコード46を作る。さ
らに、処理32の判定から処理34に進み、処理35が
、処理対象ループをD020とする。処理29と30が
ループ制御変数工のレコード42を作り、処理31と3
2の判定を経て、処理33がIAのレコード43を作る
次に、第5図のインダクシヨンテーブルを入力として、
初期値生成部2が、登録された各基本インダクシヨン変
数に対して、ループ内で値が変わらないループ不変変数
である初期値を検出し、第7図のようにインダクシヨン
テーブルを更新する。
必要ならばこれを計算するコードを生成する。
処理の概要を第6図にフローチャートで示す。
まず、第5図のDolOループのレコード36より、D
010ループのインダクシヨン変数について処理を行う
、第6図の処理60が、制御変数Iについて初期値1を
検出し、処理63が、1を第7図に示すインダクシヨン
テーブルのレコード39のフィールド70に登録する。
第5図のインダクシヨンテーブルのレコード40のJつ
いては、ループの外側からの依存が検出できないため、
処理61の判定から処理64が、第8図に示す代入文1
4を生成、挿入し、新たに導入した左辺の変数Jφをイ
ンダクシヨンテーブルのレコード40のフィールド70
に登録すし、第7図のレコード40のようにする。第5
図のレコード41のRについても同様に、処理64が第
8図に示す代入文15を生成、挿入し、新たに導入した
変数Rφをインダクシヨンテーブルのレコード41のフ
ィールド70に登録し、第7図のレコード41のように
する。
この後、処理65による判定を経て、D o 30ルー
プの処理に移る。
ループ制御変数■について、初期値1を検出し処理63
がレコード42のフィールド71に登録し、第7図の4
2のようにする。同様に、IAについても、処理60が
、文20の定義を検出し、処理63がレコード43のフ
ィールド71に登録し、第7図の43のようにする。
更新されたインダクシヨンテーブル7を入力として、公
差・公比生成部4が、インダクシヨン変数に対して公差
か公比のいずれかを検出する。
処理の概要を第9図に示す。
まず、DolOループについて処理を施す。
DolOループは、内側にループを持たないため、処理
85の判定から処理93に進む、Jは右辺を統括する演
算子が加算であるため、処理94が公差5を検出し、イ
ンダクシヨンテーブルのレコード40のフィールド76
に5を登録し、79にはnilを登録する。Rは右辺を
統括する演算子が乗算であるため、処理95が公比Aを
検出し、インダクシヨンテーブルのレコード4,1のフ
ィールド76にnilを79にAを登録する。
この後、処理92による判定を経て、Do30ループの
処理に移る。
IAについては、内側ループ(Do20)についてもイ
ンダクシヨン変数であるため、処理85の判定から処理
86に進む。処理86がD020ループ内の文25を検
出した後、処理86により、この公差・公比生成部が再
帰的に呼ばれる。この時は、Do20は内側ループを持
たないため、DolOループのJと同様公差1を検出し
、インダクシヨンテーブルのレコード46のフィールド
78に1を81にnilを登録し、呼び出し元へもどる
。フィールド78の1に公差であるため、処理89へ進
む、処理89は、内側ループのループ長が、レコード4
4より工であるため、公差1の内側ループ1回1回る時
の総和を求める。この例だと、工は当該ループ(Do3
0ループ)の制御変数であるため、ループ1回目から工
回目まで1を加えた総和はl5(I−1)/2となり、
これがIAの公差である。これをインダクシヨンテーブ
ル43のフィールド77に登録し、フィールド80には
nilを登録する。上記のようにして、並列化対象ルー
プのインダクシヨン変数、J、R。
IAの公差又は公比を得ることができた。第7図のイン
ダクシヨンテーブルで空白のフィールドは必要ないため
、値を設定する処理は行わない。
最後に、定義式を公比・公差及びループ回数を用いた式
に変換し、インダクシヨン変数における複数のループ回
数にまたがる依存を削除する。
第7図のインダクシヨンテーブルを入力として、大変換
部5の処理フローを第10図に示す、これにより、第8
図のソースプログラムは第11図のようになる。
まず、D o 10ループについて処理を施す、内側に
ループを持たないため、処理100の判定から処理10
2に進み、インダクシヨン変数Jの時は、処理103が
、第8図の文17を第11図の文107に置換し、イン
ダクシヨン変数Rの時は。
処理104が第8図の文18を第11図の文108に置
換する。
この後、処理105の判定を経て、Do30ループの処
理に進む、インダクシヨン変数IAは、内側ループでも
インダクシヨン変数であるため、処理100の判定から
、処理101に進む。処理101は、第8図の文22と
文23の間に、第11図に示す様に文110を挿入する
以上のようにして、第3図のプログラムを第11図に変
換すると、DolOループ、Do30ループの各繰り返
し回数ごとに全く独立に並列実行することが可能となる
。ループの繰り返し回数をまたがる依存は無いため、プ
ロセッサ間に通信が無い並列機でも並列処理可能でなる
。第12図にその様子を示す。
〔発明の効果〕
本発明によれば、FORTRAN ateのプログラム
によく現われる、再帰的に定義されるインダクシヨン変
数の再帰性を解消することができる。
この結果、並列に実行するプロセッサの間に通信手段が
無いマシンでも並列に実行することができ、また、通信
する手段があるマシンについても通信によるオーバヘッ
ドを削減することができる。
このようにして、並列マシン向きの実効性能の高いオブ
ジェクトコードを生成することができる。
【図面の簡単な説明】
第1図は並列化処理部の一部、第2図はコンパイラの全
体図、第3図は実施例説明のためのソースプログラム例
、第4図はインダクシヨン変数検出部の処理概要、第5
図はインダクシヨンテーブル、第6図は初期値生成部の
処理概要、第7図はインダクシヨンテーブル、第8図は
初期値生成部の変換例、第9図は公差・公比生成部の処
理概要、第10図は定義式変換部の処理概要、第11図
は並列化処理部の出力であるプログラムの変換例、第1
2図はプログラムの並列実行列である。 1・・・自動並列化部、2・・・インダクシヨン変数検
出部、3・・・初期値生成部、4・・・公差・公比生成
部、5・・・大変換部、6・・・中間語、7・・・イン
ダクシヨンテーブル、8・・・FORTRANコンパイ
ラ、9・・・構文解析部、10・・・中間部、11・・
・コード生成部、12・・・FORTRANソースプロ
グラム、13・・・オブジェクトコード、14〜27・
・・FORTRANプログラム、28〜35・・・処理
部、36〜38・・・ループテーブル、39〜46・・
・インダクシヨンテーブル、60〜65・・・処理部、
70〜81・・・インダクシヨンテーブル、85〜95
・・・処理部、100〜105・・・処理部、107〜
109・・・FORTRAN実行文、110〜112・
・・Ho5t計算機の実行、113〜118・・・プロ
セッサエレメントによる並列実行。

Claims (1)

    【特許請求の範囲】
  1. 1、高級言語で記述されたソースプログラムを並列計算
    機による並列実行のための命令列を含むオブジェクトコ
    ードを生成するコンパイラにおいて、遂次実行型のプロ
    グラムを並列実行型のプログラムに変換する並列化部を
    備え、該並列化部は、並列化の対象とするループの中の
    再帰的に定義されるインダクシヨン変数を検出するイン
    ダクシヨン変数検出部と、検出したインダクシヨン変数
    の初期値を計算するコードを生成する初期化生成部と、
    インダクシヨン変数の公差や公比を計算するコードを生
    成する公差・公比生成部と、インダクシヨン変数の定義
    式を、計算した初期値や公差又は公比と、ループ回数を
    用いて定義する式に変換する式変換部を備えてなり、該
    並列化部が、再帰的に定義されるインダクシヨン変数を
    ループの繰り返し画数と、ループの実行中値が変わらな
    いループ不変変数によつて定義されるように変換する並
    列化コンパイル方式。
JP62139729A 1987-06-05 1987-06-05 並列化コンパイル方法 Expired - Lifetime JP3053092B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62139729A JP3053092B2 (ja) 1987-06-05 1987-06-05 並列化コンパイル方法
US07/201,772 US5067068A (en) 1987-06-05 1988-06-02 Method for converting an iterative loop of a source program into parellelly executable object program portions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62139729A JP3053092B2 (ja) 1987-06-05 1987-06-05 並列化コンパイル方法

Publications (2)

Publication Number Publication Date
JPS63304325A true JPS63304325A (ja) 1988-12-12
JP3053092B2 JP3053092B2 (ja) 2000-06-19

Family

ID=15252029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62139729A Expired - Lifetime JP3053092B2 (ja) 1987-06-05 1987-06-05 並列化コンパイル方法

Country Status (2)

Country Link
US (1) US5067068A (ja)
JP (1) JP3053092B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0470931A (ja) * 1990-07-05 1992-03-05 Agency Of Ind Science & Technol 論理合成の演算割り当て方法
WO2012004972A1 (ja) * 2010-07-05 2012-01-12 パナソニック株式会社 プログラム生成装置、プログラム生産方法及びプログラム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150636A (ja) 1989-11-08 1991-06-27 Matsushita Electric Ind Co Ltd コンパイル方法
US5255385A (en) * 1990-02-26 1993-10-19 Hitachi, Ltd. Method of testing program, and compiler and program testing tool for the method
JPH0475139A (ja) * 1990-07-18 1992-03-10 Toshiba Corp ループ並列化装置
JP2818016B2 (ja) * 1990-08-09 1998-10-30 株式会社日立製作所 プロセス並列実行方法および装置
IL100989A (en) * 1991-02-27 1995-10-31 Digital Equipment Corp Analyzing inductive expressions in a multilanguage optimizing compiler
JPH04367033A (ja) * 1991-06-14 1992-12-18 Hitachi Ltd コンパイル方法
US5293631A (en) * 1991-08-06 1994-03-08 Hewlett-Packard Company Analysis and optimization of array variables in compiler for instruction level parallel processor
US5450554A (en) * 1991-11-11 1995-09-12 Matsushita Electric Industrial Co., Ltd. Apparatus for detecting possibility of parallel processing and method thereof and a program translation apparatus utilized therein
US5551039A (en) * 1992-02-03 1996-08-27 Thinking Machines Corporation Compiling a source code vector instruction by generating a subgrid loop for iteratively processing array elements by plural processing elements
JPH05224711A (ja) * 1992-02-13 1993-09-03 Koyo Electron Ind Co Ltd プログラマブルコントローラの制御方法
US6055627A (en) * 1992-06-22 2000-04-25 Hitachi, Ltd. Compiling method of accessing a multi-dimensional array and system therefor
JPH07110800A (ja) * 1993-10-13 1995-04-25 Matsushita Electric Ind Co Ltd 最適化並列コンパイル装置及び最適化並列コンパイル方法
JP2669603B2 (ja) * 1994-12-15 1997-10-29 インターナショナル・ビジネス・マシーンズ・コーポレイション コンパイラにおけるコード生成方法及びコンパイラ
US6272676B1 (en) * 1998-01-13 2001-08-07 Intel Corporation Method and apparatus for finding loop— lever parallelism in a pointer based application
US7624387B2 (en) * 2003-04-10 2009-11-24 Panasonic Corporation Compiler, program product, compilation device, communication terminal device, and compilation method
GB0325553D0 (en) * 2003-11-01 2003-12-03 Ibm Method and apparatus for activating/deactivating run-time determined software routines in Java compiled bytecode applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5856152A (ja) * 1981-09-30 1983-04-02 Fujitsu Ltd プログラム変換装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309756A (en) * 1971-02-17 1982-01-05 Beckler Robert I Method of automatically evaluating source language logic condition sets and of compiling machine executable instructions directly therefrom
US4145733A (en) * 1974-03-29 1979-03-20 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
JPS5194734A (en) * 1975-02-19 1976-08-19 Tajushorisochino enzanseigyohoshiki
US4085450A (en) * 1976-12-29 1978-04-18 Burroughs Corporation Performance invarient execution unit for non-communicative instructions
JPS5440537A (en) * 1977-09-07 1979-03-30 Hitachi Ltd Pipeline control system
US4215416A (en) * 1978-03-22 1980-07-29 Trw Inc. Integrated multiplier-accumulator circuit with preloadable accumulator register
JPS5853368B2 (ja) * 1978-08-30 1983-11-29 三菱電機株式会社 シ−ケンスコントロ−ラ
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4430707A (en) * 1981-03-05 1984-02-07 Burroughs Corporation Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks
US4468736A (en) * 1982-06-08 1984-08-28 Burroughs Corporation Mechanism for creating dependency free code for multiple processing elements
US4466061A (en) * 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
US4484272A (en) * 1982-07-14 1984-11-20 Burroughs Corporation Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4564901A (en) * 1983-07-21 1986-01-14 Burroughs Corporation Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors
US4642764A (en) * 1984-08-13 1987-02-10 International Business Machines Corporation Method of developing formal identities and program bases in an optimizing compiler
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US4763255A (en) * 1984-10-31 1988-08-09 International Business Machines Corporation Method for generating short form instructions in an optimizing compiler
US4825360A (en) * 1986-07-30 1989-04-25 Symbolics, Inc. System and method for parallel processing with mostly functional languages
JPH0814817B2 (ja) * 1986-10-09 1996-02-14 株式会社日立製作所 自動ベクトル化方法
US4802091A (en) * 1986-10-31 1989-01-31 International Business Machines Corporation Method for improving the efficiency of arithmetic code generation in an optimizing compiler using the technique of reassociation
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US4943912A (en) * 1987-10-13 1990-07-24 Hitachi, Ltd. Parallel processor system having control processor and array control apparatus for selectively activating different processors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5856152A (ja) * 1981-09-30 1983-04-02 Fujitsu Ltd プログラム変換装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0470931A (ja) * 1990-07-05 1992-03-05 Agency Of Ind Science & Technol 論理合成の演算割り当て方法
WO2012004972A1 (ja) * 2010-07-05 2012-01-12 パナソニック株式会社 プログラム生成装置、プログラム生産方法及びプログラム
US8806466B2 (en) 2010-07-05 2014-08-12 Panasonic Corporation Program generation device, program production method, and program
JP5580416B2 (ja) * 2010-07-05 2014-08-27 パナソニック株式会社 プログラム生成装置、プログラム生産方法及びプログラム

Also Published As

Publication number Publication date
JP3053092B2 (ja) 2000-06-19
US5067068A (en) 1991-11-19

Similar Documents

Publication Publication Date Title
JP3053092B2 (ja) 並列化コンパイル方法
Ammarguellat A control-flow normalization algorithm and its complexity
US5293631A (en) Analysis and optimization of array variables in compiler for instruction level parallel processor
Ramamoorthy et al. A high-level language for horizontal microprogramming
US6553362B2 (en) Case-reduced verification condition generation system and method using weakest precondition operator expressed using strongest postcondition operators
NZ241693A (en) Compiling computer code: elements of intermediate language flow graph include indications of effects and dependencies on other elements
JPH0814817B2 (ja) 自動ベクトル化方法
JP2001166949A (ja) シンボリック実行を用いてソースコードをコンパイルするための方法及び装置
EP0532731A1 (en) Method of constructing a constant-folding mechanism in a multilanguage optimizing compiler
JPS61241837A (ja) 範囲検査の最適化方法
JP2001125792A (ja) 最適化促進装置
Rocha et al. An algebraic framework for parallelizing recurrence in functional programming
JPH04307624A (ja) ループ最適化方法及び装置
JPS63155264A (ja) ベクトル計算機用言語チユ−ニング処理方式
JPH09282173A (ja) プログラムの静的解析方法
JPS62204374A (ja) 2倍演算最適化処理方式
JP2723020B2 (ja) トレースデータ生成システム
JP3311775B2 (ja) ポインタベクトル化方式
JP3233467B2 (ja) プログラム変換方法および装置
JP3726992B2 (ja) 一括関数呼出化方法
JPH0795273B2 (ja) コンパイラにおける和計算の部分展開処理方式
JPH01128136A (ja) コンパイル処理装置
JPH04163631A (ja) コンパイラ
JPH0512752B2 (ja)
JP4327533B2 (ja) 演算処理プログラム、演算処理方法、および演算処理装置