JPS6235944A - コンパイラ処理方式 - Google Patents

コンパイラ処理方式

Info

Publication number
JPS6235944A
JPS6235944A JP17529485A JP17529485A JPS6235944A JP S6235944 A JPS6235944 A JP S6235944A JP 17529485 A JP17529485 A JP 17529485A JP 17529485 A JP17529485 A JP 17529485A JP S6235944 A JPS6235944 A JP S6235944A
Authority
JP
Japan
Prior art keywords
loop
loops
sibling
program
unit
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
Application number
JP17529485A
Other languages
English (en)
Inventor
Kazuhiko Suzuki
一彦 鈴木
Morie Sagawa
佐川 守江
Masaki Aoki
正樹 青木
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 JP17529485A priority Critical patent/JPS6235944A/ja
Publication of JPS6235944A publication Critical patent/JPS6235944A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 中間コード最適化部を有するコンパイラにおけるコンパ
イラ処理に当って、兄弟ループ相互間で1つのループに
融合可能なループを判定する機能と、当該融合可能なル
ープを融合する機能とをもうけ、効率のよい目的プログ
ラムを生成するようにすることが開示されている。
〔産業上の利用分野〕
本発明は、コンパイラ処理方式、特に中間コード最適化
部を有するコンパイラにおいて、兄弟ループ相互間で融
合可能なものを融合するようにしたコンパイラ処理方式
に関する。
〔従来の技術〕
従来から、第5図に示す如く、主記憶装置(MSU)と
記憶制御装置(MCU)とベクトル処理装置(VP)と
チャネル・プロセッサ(CHP)と大記憶装置(DA)
とを有する如き、ベクトル処理用のデータ処理システム
が開発されている。
このようなシステムにおける処理を効率よく実行させる
ために、プログラムが作成したソース・プログラムを効
率のよい目的プログラムに変換することが行われ、第6
図図示の如き構成をもつコンパイラが用いられている。
第6図において、1はコンパイラ、2はソース・プログ
ラム(または当該プログラムが格納されている大記憶装
置)。
3は目的プログラム(または当該プログラムが格納され
ている大記憶装置)を表わしている。
更に、4はソース解釈部であって、ソース・プログラム
2が入力されたとき1文解釈を行って中間コード(中間
テキスト)に展開する。5は記憶域割付は部であって、
プログラム中に出現する各種データに対応して記1.a
域内番地を割り当てる。
6はベクトル化部であって、プログラム中のループ構造
を検出し、並列実行可能部分を認識する機能と、中間コ
ード変更機能とをもつ。7は中間コード最適化部であっ
て、中間コードのレベルで第5図図示のベクトル処理用
のデータ処理システムを有効に利用するための最適化を
施す。
8はレジスタ使用決定部であって、中間コードに現われ
たデータに実際の資源を割り当てる。9は目的プログラ
ム出力部であって1機械命令語のレベルでの最適化を行
いかつ得られた機械命令語を目的プログラム3として大
記憶装置に対して格納する。
上記の如くコンパイラ1において処理が行われるが、上
記与えられるソース・プログラムは例えば r   Do      10   1=1. 100
A  (I)  −B  (1)+C(1)D  (1
)  −E  (T)+F  (I)10   C0N
TINUE’        Jとして示す如き、いわ
ゆるDOループが存在する。
なお当該DOループは、「ベクトルBとベクトルCとの
両者のエレメントについてエレメント・ナンバの同じも
の同士をナンバ1からナンバ100まで加算して、ベク
トルAを生成し、更にベクトルEとベクトルFとについ
ても同様にナンバ1からナンバ100までを加算して、
ベクトルDを生成する」ことを指示している。
そして、上記ソース・プログラムには、上述の如きD○
ループが複数個まとまって1本発明にいう兄弟ループ包
含ループを構成していることがある。なお当該兄弟ルー
プ包含ループを構成している各個のループを兄弟ループ
と呼んでいる。
〔発明が解決しようとする問題点〕
上記の如きコンパイラにおける処理において。
個々の兄弟ループは夫々−回のヘクトル長の設定によっ
て動作可能なベクトル命令範囲に対応しており1個々の
兄弟ループ内での演算数(上記DOループの例では演算
数が「2」)が少ないと、最適化対象となるテキスト数
が少ないために、最適化の効果が十分発揮できないこと
がある。
〔問題点を解決するための手段〕
本発明は、上記の点を解決するものであり、」ニ記兄弟
ループ相互間で、1つのループに融合可能なものを融合
し、ループ内での演算数を大にして上述の最適化をより
効果的に達成できるようにしている。
第1図は本発明の原理ブロック図を示す。図中の符号7
は第6図図示のものに対応し、10は兄弟ループ包含ル
ープ抽出機能部であって、上述した如く、兄弟ループを
包含しているループを抽出する。11は融合可否判定機
能部であって、兄弟ループ相互間で、少なくとも、ベク
トル長が同じであってかつデータの依存関係から許され
るか否かを判定する。なおベクトル長とは、DOループ
の形で記述された初期値をSとし、終値をEとし。
増分値をΔIとするとき。
ベクトル(VL)  =  ((E−5) /Δ■)+
1で与えられる。
12は兄弟ループ間入替え機能部であって1次のループ
融合処理を行うために、融合可能なループ相互間が隣接
する形に、兄弟ループ間で位置の入替えを行う。13は
ループ融合処理機能部であって、融合可能なループ相互
を単一のループにまとめる処理を行う。更に制御部14
は、全体の制御を行う。
〔作用〕
兄弟ループ包含ループ抽出機能部10において該当する
ループが抽出されると、融合可否判定部11は。
(1)ベクトル長が同じ。
(ii )相互に隣接するように位置の入替えが行われ
てもその入替えが許される。
という条件で満足するループの存在を判定する。
そして兄弟ループ間人替え機能部12は、融合可能なル
ープが隣接するように位置の入替えを行い。
ループ融合処理機能部13がそれらのループを単一のル
ープに融合する。
〔実施例〕
第2図は融合可否判定機能部におけるベクトル長判定処
理の態様を説明する説明図である。図示の如く、兄弟ル
ープ15−1.15−2.15−3・・・を包含する兄
弟ループ包含ループ16が存在していて5図示ループ1
5−1はベクトル長が■ であり、ループ15−2は同じくベクトル長がNであり
、ループ15−3は同じくベクトル長が9であるものと
する。これら各ループのベクトル長は、容易に判定する
ことができ、第2図図示の場合には、ループ15−1と
ループ15−3とのベクトル長が同じであることから、
これらは融合候補とされ、第3図を参照して説明するデ
ータ依存関係から、ループ15−1をループ15−2の
後段に入替え可であるか、ループ15−3をループ15
−2の前段に入替え可であれば、ループ15−1とルー
プ15−3とは融合対象となる。
第3図は融合可否判定機能部におけるデータ依存関係判
定処理を説明する説明図である。図示の兄弟ループの1
つのループ15−1が内部に演算A (1−1)−・・
・・・・ をもち、ループ15−(i+l)が内部に演算・・・・
・・=A (1) をもち、ループ15− (j+2)が内部に演算A (
I−1)−・・・・・・ をもっているとする。
この場合、ループ15−1が配列Aについて図示17−
1の如く。
A (1−1) −A (1−1>=A (1)である
ことから、  A (1)、A (2)、A (3)・
・・と定義してゆき、ループ15−(i+1)が配列A
について図示17−1の如く。
A (I) =A (2) であることから、 A (2)、A (3)・・・と利
用してゆくこととなる。したがって1図示の場合には。
ループ15−(i+1)を実行してループ15−iを実
行するようにすることはデータの依存関係から禁止され
る。
またループ15−(i+1)とルー115−(i+2)
との関係について言えば、ループ15−(i +1)が
配列Aについて図示17−2の如く。
A  N)=A  (2) であることから、 A (2)、A (3)・・・と利
用してゆき、ループ15−(++2)が配列へについて
図示17−2の如く A (1−1) −A (1−1) −A (1)であ
ることから、 A (1)、A (2)、A (3)・
・・と定義してゆく形となっている。したがって3図示
の場合には、ループ15−(++1)を実行してループ
15〜(++2)を実行することは、許される。
したがって、第3図図示の場合には、ループ15−(+
+1)とループ クトル長も等しいことから,融合対象となる。なお、ル
ープ15−iとループ15−(++2)とは、ループ +2)の後段に入替えることが不可でありかつループ1
5−(++1)をループ15−iの前段に入替えること
が不可であることから,融合不可となっている。
兄弟ループ間入替え機能部12は.例えば仮にVLRI
  (10) ↓ VLR2  (20) ↓ VLR3  (10) ↓ VLR4(20) の順に兄弟ループが並んでおり,カッコ内に数値でもっ
てベクトル長を示すように,ループVLR1とV L 
R 3とが同じヘクトル長「10」であり。
ループVLR2とV L R 4とが同じへりI−ル長
[20Jであり.かつデータ依存関係から位置入替えが
許される場合には。
の順に位置の入替えを行う処理を行う。そして。
ループ融合処理機能部13は,ループVLR 1とV 
L R 3とを1つに融合したループV L R 1’
をつくり.ループV L R 2とV I− R 4と
を1つに融合したループV L R 2’をつくる処理
を行う。
第4図は本発明に示す処理を行う一実施例フローチャー
トを示す。図中の処理18は第1M図示の兄弟ループ包
含ループ抽出機能部10に対応し。
処理19は同しく融合可否判定機能部11に対応し.処
理20は同じく兄弟ループ間入替え機能部12に対応し
,処理21は同じくループ融合処理機能部13に対応し
ている。
〔発明の効果〕
以上説明した如く,本発明によれば.兄弟ループ包含ル
ープ内で兄弟ループ相互間を融合し,1つのループ内で
の演算数を増加し,最適化対象となるテキスト数を増し
,最適化の効果を向上させることができる。
【図面の簡単な説明】
第1図は本発明の原理ブロック図,第2図はベクトル長
判定処理を説明する説明図.第3図はデータ依存関係判
定処理を説明する説明図,第4図は本発明の一実施例処
理フローチャート、第5図はベクトル処理用のデータ処
理システムの構成。 第6図はコンパイラの構成を示す。 図中,1はコンパイラ、4はソース解釈部,5は記憶域
割付げ部,6はヘクトル化部,7は中間コード最適化部
.8はレジスタ使用決定部,9は目的プログラム出力部
,10は兄弟ループ包含ループ抽出機能部,11は融合
可否判定機能部.12は兄弟ループ間入替え機能部.1
3はループ融合処理機能部,14は制御部,15は兄弟
ループ。 16は兄弟ループ包含ループを表わす。 特許出願人   富士通株式会社 代理人弁理士  森 1) 寛(外1名)1、4 図面の節部内容に変更なし) べ゛クトIV長γ1j片シ改y[ 第 2目 テツタ禍匁存びq4歌F11刃−旬しガL箒 3 聞 フO−すf−ト 菊 5I21 手続主甫正也:(方式) 昭和60年11月18[1 昭和60年特許願第175294号 2、発明の名称 コンパイラ処理方式 3、補正をする者 事件との関係 特許出願人 住所 神奈川県用崎市中原区上小田中1015番地名称
 (522)冨士通株式会社 代表者 山 本 車 眞 4、代理人

Claims (1)

  1. 【特許請求の範囲】 与えられたソース・プログラム(2)を解釈するソース
    解釈部(4)と、 プログラム中に出現する各種データに対応して記憶域内
    番地を割り当てる記憶域割付け部(5)と、 プログラム中のループ構造を検出して並列実行可能部分
    を認識する機能および中間コード変更機能をもつベクト
    ル化部(6)と、 中間コードのレベルでベクトル・プロセッサ・ハードウ
    ェアを有効に利用するための最適化を施す中間コード最
    適化部(7)と、 中間コードに現われたデータに実際の資源を割り当てる
    レジスタ使用決定部(8)と、 命令語を格納するデータ・ファイルへ出力すると共に当
    該命令語レベルで最適化を行う目的プログラム出力部(
    9)とを有し、 上記与えられたソース・プログラム(2)から、上記ベ
    クトル・プロセッサ・ハードウェアが処理を実行する目
    的プログラム(3)を得るコンパイラ(1)において、 上記中間コード最適化部(7)が、少なくとも、兄弟ル
    ープ包含ループ抽出処理機能部(10)と、当該兄弟ル
    ープ相互間で、少なくとも、ベクトル長が同じでかつデ
    ータの依存関係からみて許されるか否かを判定する融合
    可否判定機能部(11)と、融合可能な兄弟ループを融
    合するためにループ間の位置の入替えを行う兄弟ループ
    間入替え機能部(12)と、 当該入替えられた結果を利用しかつ上記融合可能な兄弟
    ループを単一のループに融合するループ融合処理機能部
    (13)とをそなえ、 融合可能なループを融合した形の目的プログラム(3)
    を生成するようにした ことを特徴とするコンパイラ処理方式。
JP17529485A 1985-08-09 1985-08-09 コンパイラ処理方式 Pending JPS6235944A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17529485A JPS6235944A (ja) 1985-08-09 1985-08-09 コンパイラ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17529485A JPS6235944A (ja) 1985-08-09 1985-08-09 コンパイラ処理方式

Publications (1)

Publication Number Publication Date
JPS6235944A true JPS6235944A (ja) 1987-02-16

Family

ID=15993593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17529485A Pending JPS6235944A (ja) 1985-08-09 1985-08-09 コンパイラ処理方式

Country Status (1)

Country Link
JP (1) JPS6235944A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141357B2 (en) 2013-05-17 2015-09-22 Fujitsu Limited Computer-readable recording medium, compiling method, and information processing apparatus

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58149567A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd ベクトル・レングス制御範囲融合処理方式
JPS60118934A (ja) * 1983-11-30 1985-06-26 Fujitsu Ltd ル−プ内ブロツク並び換え処理方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58149567A (ja) * 1982-02-27 1983-09-05 Fujitsu Ltd ベクトル・レングス制御範囲融合処理方式
JPS60118934A (ja) * 1983-11-30 1985-06-26 Fujitsu Ltd ル−プ内ブロツク並び換え処理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141357B2 (en) 2013-05-17 2015-09-22 Fujitsu Limited Computer-readable recording medium, compiling method, and information processing apparatus

Similar Documents

Publication Publication Date Title
US6243864B1 (en) Compiler for optimizing memory instruction sequences by marking instructions not having multiple memory address paths
US6611946B1 (en) Method and system for automatic generation of DRC rules with just in time definition of derived layers
WO1992015946A1 (en) System and method for preserving source instruction atomicity in translated program code
KR870004366A (ko) 데이터 처리 시스템
WO2005008487A2 (en) Method and apparatus for partitioning code in program code conversion
JPS6235944A (ja) コンパイラ処理方式
Negoro The predicate structure to represent the intention for software
EP0609903B1 (en) Program language compiling system
JP2006172003A (ja) プログラム実行監視装置、プログラム実行監視方法及びプログラム作成方法
CN100578442C (zh) 选择性地控制结果回写的装置及方法
JPH1153249A (ja) メモリ管理方法
JPS58149567A (ja) ベクトル・レングス制御範囲融合処理方式
KR900015005A (ko) 링 축소 로직 매카니즘
JP2000010793A (ja) Osマクロ発行pc判定方式
Pasquini et al. Safety verification of Ada95 programs using software fault trees
JPS6240538A (ja) デ−タ処理装置
JPH0619713B2 (ja) 論理型デ−タ処理装置
Phung et al. Adding flexibility using structured goals: the case of itinerant mobile agents
KR930004861A (ko) 정보처리 시스템
JPH0193823A (ja) パーソナルコンピュータのrom制御方式
JP2520481B2 (ja) 対デ―タ検出回路およびデ―タフロ―コンピュ―タにおけるコピ―方法
JP2001265605A (ja) コンパイラの命令列最適化方法、コンパイラ装置、記録媒体、及びプログラム
JPH1124939A (ja) プログラム変換方法
JPH0362223A (ja) Prologにおけるローカルスタックの管理方法
JPH027126A (ja) プログラムサイズ縮小装置及びその方法