JPH0594470A - Vectrization system - Google Patents

Vectrization system

Info

Publication number
JPH0594470A
JPH0594470A JP27832291A JP27832291A JPH0594470A JP H0594470 A JPH0594470 A JP H0594470A JP 27832291 A JP27832291 A JP 27832291A JP 27832291 A JP27832291 A JP 27832291A JP H0594470 A JPH0594470 A JP H0594470A
Authority
JP
Japan
Prior art keywords
loop
loop structure
intermediate text
information table
value
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
JP27832291A
Other languages
Japanese (ja)
Inventor
Yuji Yokoya
雄司 横谷
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP27832291A priority Critical patent/JPH0594470A/en
Publication of JPH0594470A publication Critical patent/JPH0594470A/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To prepare an objective program which can be executed at a high speed on a vector computer by vectrizing a loop including a recurrence formula in a specific form. CONSTITUTION:As for the vector computer having a vector command of the recurrence formula in an x(i)=f (x(i-1)) form, in a compiler 42 which inputs an original program 41 described in a high-level language. and prepares an objective program 48, a loop structure selecting means 44 selects the loop including the substitution sentence in the x(i)=f (x(i-n)) form while (n) is the multiple of an increment(incr), among the loop structures of an intial value(init), terminal value(term) and increment(incr). A loop structure transforming means 45 transforms the selected loop structure into a dual loop structure constituted of an ouside loop of an initial value (0), terminal value(n/incr), increment (1), and loop control variable(i), and an inside loop of an initial value (init + (i)), terminal value(term) and increment(n). A vectrizing means 46 vectrizes the inside loop of the transformed dual loop.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、高級言語で書かれた原
始プログラムを入力してベクトル計算機に対する目的プ
ログラムを生成するコンパイラに関し、特に、ループ構
造を高速に実行するようなベクトル命令列を生成するベ
クトル化方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a compiler for inputting a source program written in a high-level language to generate an object program for a vector computer, and more particularly to a vector instruction sequence for executing a loop structure at high speed. Vectorization method.

【0002】[0002]

【従来の技術】ベクトル演算命令をもつ計算機(ベクト
ル計算機)においては、複数の規則的に並んだデータ列
(ベクトルデータ)間の演算をベクトル命令により一度
に高速に実行できる。そこでFORTRAN言語のよう
な高級言語で記述された原始プログラムを翻訳してベク
トル計算機に対する目的プログラムを生成するコンパイ
ラにおいては、原始プログラムを解析して可能なかぎり
ベクトル命令を用いて処理するような命令列を生成す
る。これをベクトル化と呼ぶ。ベクトル化は通常ループ
構造に対して行われる。
2. Description of the Related Art In a computer having a vector operation instruction (vector computer), an operation between a plurality of regularly arranged data strings (vector data) can be executed at a high speed by a vector instruction. Therefore, in a compiler that generates a target program for a vector computer by translating a source program written in a high-level language such as FORTRAN language, an instruction sequence that analyzes the source program and uses vector instructions as much as possible. To generate. This is called vectorization. Vectorization is usually performed on the loop structure.

【0003】一般に、或るループ構造がベクトル化可能
かどうかは、そのループ構造中に現れる配列の定義参照
関係がベクトル化した場合も保存されるかどうかにより
決まる。そして、次の4つの条件のうちのどれかを満た
していれば、定義参照関係がベクトル化に適合すること
が知られている。
In general, whether or not a loop structure can be vectorized depends on whether or not the definition reference relation of an array appearing in the loop structure is preserved even when vectorized. It is known that the definition reference relationship is suitable for vectorization if any of the following four conditions is satisfied.

【0004】その配列がループ中のどこでも定義され
ていない。 その配列の或る要素に対する定義参照はすべてループ
の同一の繰り返し回に閉じている。 その配列の或る要素がループの異なる繰り返しにおい
てそれぞれ定義されるか定義かつ参照される場合、その
定義あるいは参照の原始プログラム上での出現順序とル
ープの繰り返しの進行における出現順序とが一致してい
る。 その配列の或る要素がループ中で定義されていると
き、定義されている配列のループの他の場所で定義また
は参照されている同一配列の要素との間に重なりがな
い。
The array is not defined anywhere in the loop. All definition references to an element of the array are closed in the same iteration of the loop. When an element of the array is defined or defined and referenced in different iterations of the loop, the order of appearance of the definition or reference in the source program and the order of appearance in the iteration of the loop are the same. There is. When an element of the array is defined in a loop, there is no overlap with elements of the same array that are defined or referenced elsewhere in the loop of the defined array.

【0005】なお、条件からを満たさないような配
列要素の定義参照関係を後方依存関係があるという。
A definition reference relationship of array elements that does not satisfy the condition is called a backward dependency relationship.

【0006】そこで、従来は、ループ構造がベクトル化
可能かどうかを上記4つの条件に照らして判断し、可能
と判断したループ構造についてベクトル化を行ってい
た。
Therefore, conventionally, it has been determined whether or not the loop structure can be vectorized in light of the above four conditions, and the loop structure that is determined to be vectorizable is vectorized.

【0007】[0007]

【発明が解決しようとする課題】したがって、たとえ
ば、図2に示すFORTRAN言語で記述されたループ
では、 ・配列A,Bとも定義されているため条件は不成立。 ・配列要素B(n)は、図2の代入文aでn回目の繰り
返しのとき定義され、図2の代入文bでn−10回目の
繰り返しのとき参照されているため、条件は不成立。 ・配列要素B(n)が、n回目の繰り返しのとき図2の
代入文aで参照され、n−10回目の繰り返しのとき図
2の代入文bで定義されるので定義参照の原始プログラ
ム上での出現順序とループの繰り返しの進行における出
現順序とが逆になっており、条件は不成立。 ・配列Bの定義される要素は11から110番目、参照
される要素は1から100番目である。したがって、1
1から100番目までの要素が定義参照されるため、条
件は不成立。 となり、条件からのすべてが成り立たないため、従
来技術では図2のようなループはベクトル化できないと
いう問題点があった。
Therefore, for example, in the loop described in the FORTRAN language shown in FIG. 2, since the arrays A and B are also defined, the condition is not satisfied. The array element B (n) is defined in the assignment statement a of FIG. 2 at the nth iteration and is referenced in the assignment statement b of FIG. 2 at the n-10th iteration, so the condition is not satisfied. The array element B (n) is referred to by the assignment statement a in FIG. 2 at the nth iteration, and is defined by the assignment statement b in FIG. 2 at the n-10th iteration. The appearance order in and the appearance order in the iteration of the loop are opposite, and the condition is not satisfied. The array B has 11th to 110th defined elements, and the 1st to 100th referenced elements. Therefore, 1
The condition is not satisfied because the 1st to 100th elements are defined and referenced. Since all of the conditions are not satisfied, the conventional technique has a problem that the loop shown in FIG. 2 cannot be vectorized.

【0008】また、たとえば、図5に示すFORTRA
N言語で記述されたループでも、配列Aの第i番目の要
素は、図5の代入文cで、第i回目の繰り返しで定義さ
れ第i+1回目の繰り返しで参照されているため、条件
からのどれも満たされていないので原則としてベク
トル化はできない。
Further, for example, the FORTRA shown in FIG.
Even in a loop written in the N language, the i-th element of the array A is defined in the i-th iteration and referenced in the (i + 1) -th iteration in the assignment statement c in FIG. In principle, vectorization is not possible because none of them are satisfied.

【0009】但し、この図5の例のように配列の各要素
の値がその配列のひとつ前の要素の値に依存するような
漸化式は科学技術計算においてはよく現れるため、ベク
トル計算機のなかには漸化式をベクトル処理できるよう
な特別の命令を備えたものが多い。したがって、このよ
うな漸化式のベクトル命令を備えたベクトル計算機用の
目的プログラムを生成するコンパイラでは、ループ中の
漸化式のパターンを認識することにより図5のようなル
ープもベクトル化していた。
However, a recurrence formula in which the value of each element of the array depends on the value of the immediately preceding element of the array as in the example of FIG. Many of them are equipped with special instructions that allow vector processing of recurrence formulas. Therefore, a compiler that generates an object program for a vector computer equipped with such recurrence type vector instructions also recognizes the recurrence type pattern in the loop and vectorizes the loop as shown in FIG. ..

【0010】しかしながら、図6に示す代入文dを含む
FORTRAN言語で記述されたループでは、配列Aの
各要素は、ひとつ前の要素ではなく、図7(a)に示す
ように3つ前の要素の値に依存している。したがって、
漸化式のパターンには当てはまらないため従来技術では
図6のようなループはベクトル化できないという問題点
があった。
However, in the loop described in the FORTRAN language including the assignment statement d shown in FIG. 6, each element of the array A is not the previous element, but three elements before the array A as shown in FIG. It depends on the value of the element. Therefore,
Since it does not apply to the recurrence pattern, the conventional technique has a problem that the loop shown in FIG. 6 cannot be vectorized.

【0011】そこで本発明の目的は、従来技術ではベク
トル化できなかった図2,図6のようなループをベクト
ル化することができるベクトル化方式を提供することに
ある。
Therefore, an object of the present invention is to provide a vectorization system capable of vectorizing loops as shown in FIGS. 2 and 6, which could not be vectorized by the prior art.

【0012】即ち、たとえば図2のループは、1から1
0,11から20,……,91から100の各繰り返し
に分割すると、分割されたそれぞれの繰り返し間では配
列Bの定義される要素と参照される要素の間に重なりが
ないため、それらは別個にベクトル化可能である。本発
明のベクトル化方式は、このような変形を自動的に行う
ことにより、従来技術ではベクトル化できなかったルー
プをベクトル化することにより、より実行性能の高い目
的プログラムを生成することを可能にするものである。
That is, for example, the loop of FIG.
When it is divided into 0, 11 to 20, ..., 91 to 100 iterations, there is no overlap between the defined element and the referenced element of the array B between the respective divided iterations, so they are separated. Can be vectorized to. The vectorization method of the present invention makes it possible to generate a target program with higher execution performance by automatically performing such a modification and vectorizing a loop that could not be vectorized by the conventional technology. To do.

【0013】また、たとえば図6のループ構造が実際に
行う処理は、図7(b)に示すような配列Aの1,4,
7,10、2,5,8,11、3,6,9,12の3組
の要素列に対する漸化式演算と同等であり、これらはベ
クトル化可能である。本発明のベクトル化方式は、この
ような変形を自動的に行うことにより、従来技術ではベ
クトル化できなかったループをベクトル化することによ
り、より実行性能の高い目的プログラムを生成すること
を可能にするものである。
Further, for example, the processing actually performed by the loop structure shown in FIG.
It is equivalent to the recurrence formula operation for three sets of element sequences of 7, 10, 2, 5, 8, 8, 11, 3, 6, 9, and 12, and these can be vectorized. The vectorization method of the present invention makes it possible to generate a target program with higher execution performance by automatically performing such a modification and vectorizing a loop that could not be vectorized by the conventional technology. To do.

【0014】[0014]

【課題を解決するための手段】図2のようなループのベ
クトル化を可能にする本発明のベクトル化方式は、高級
言語で書かれた原始プログラムを入力し、ベクトル計算
機に対する目的プログラムを生成するコンパイラにおい
て、原始プログラム中のループ構造を認識し、該ループ
構造に対する第1中間テキストを生成するとともに、該
ループの初期値init,終値term,増分値inc
rの情報を格納したループ情報テーブルを生成するルー
プ構造解析手段と、該ループ構造解析手段で求められた
前記ループ構造の第1中間テキストおよびループ情報テ
ーブルを入力し、ループ構造内に現れる配列の定義・参
照関係を解析し、配列の定義参照関係の情報を格納した
定義参照テーブルを生成する定義参照関係解析手段と、
該定義参照関係解析手段で求められた定義参照テーブル
を入力し、前記ループ構造中に後方依存関係のある配列
があった場合、該ループ構造中で該配列の各要素が参照
される繰り返し回と定義される繰り返し回の差nを求
め、その差nの値がループ構造内で一定であるループ構
造を選択するとともに、nを格納したループ変形情報テ
ーブルを生成するループ構造選択手段と、該ループ構造
選択手段で選択されたループ構造について前記ループ構
造解析手段で生成された第1中間テキストおよびループ
情報テーブルと、前記ループ構造選択手段で生成された
ループ変形情報テーブルとを入力し、前記ループ構造
を、初期値init,終値term,増分値incr×
nの指標変数iをもつ外側ループと元のループ構造のi
からmin(i+(n−1)×incr,term)の
繰り返しを実行する内側ループとからなる2重ループ構
造に変形した第2中間テキストを生成するループ構造変
形手段と、該ループ構造変形手段により生成された第2
中間テキストを入力し、2重ループの内側ループ構造を
ベクトル処理を行う第3中間テキストに変形するベクト
ル化手段と、該ベクトル化手段で生成された第3中間テ
キストを入力し一連のベクトル命令およびスカラ命令列
を生成する命令生成手段とを備えている。
The vectorization method of the present invention that enables vectorization of a loop as shown in FIG. 2 inputs a source program written in a high-level language and generates an object program for a vector computer. In the compiler, the loop structure in the source program is recognized, the first intermediate text for the loop structure is generated, and the initial value init, the final value term, and the increment value inc of the loop are generated.
The loop structure analysis means for generating a loop information table storing the information of r, the first intermediate text of the loop structure obtained by the loop structure analysis means and the loop information table are input, and A definition / reference relationship analysis means for analyzing the definition / reference relationship and generating a definition reference table storing information on the definition / reference relationship of the array,
When the definition reference table obtained by the definition reference relationship analysis means is input and there is an array having a backward dependency relationship in the loop structure, the number of repetition times in which each element of the array is referenced in the loop structure and A loop structure selecting unit that obtains a difference n between defined iterations, selects a loop structure in which the value of the difference n is constant in the loop structure, and generates a loop deformation information table storing n, and the loop. For the loop structure selected by the structure selecting means, the first intermediate text and the loop information table generated by the loop structure analyzing means, and the loop deformation information table generated by the loop structure selecting means are input to input the loop structure. Is an initial value init, a final value term, and an increment value incr ×
i of the outer loop with the index variable i of n and the original loop structure
To a min (i + (n−1) × incr, term) inner loop that executes a loop, and a loop structure deforming means for generating a second intermediate text deformed into a double loop structure, and the loop structure deforming means. Second generated
A vectorizing means for inputting the intermediate text and transforming the inner loop structure of the double loop into a third intermediate text for vector processing, and a third intermediate text generated by the vectorizing means for inputting a series of vector instructions and And an instruction generating means for generating a scalar instruction sequence.

【0015】また、図6のようなループのベクトル化を
可能にする本発明のベクトル化方式は、高級言語で書か
れた原始プログラムを入力し、x(i)=f(x(i−
1))の形式の漸化式を処理するベクトル命令をもつベ
クトル計算機に対する目的プログラムを生成するコンパ
イラにおいて、原始プログラム中のループ構造を認識
し、該ループ構造に対する第1中間テキストを生成する
とともに、該ループの初期値init,終値term,
増分値incrの情報を格納したループ情報テーブルを
生成するループ構造解析手段と、該ループ構造解析手段
で求められた前記ループ構造の第1中間テキストおよび
ループ情報テーブルを入力し、x(i)=f(x(i−
n))の形式の式を含みしかもnが前記増分値incr
の倍数となっているループ構造を選択するとともにnを
格納したループ変形情報テーブルを生成するループ構造
選択手段と、該ループ構造選択手段で選択されたループ
構造について前記ループ構造解析手段で生成された第1
中間テキストおよびループ情報テーブルと、前記ループ
構造選択手段で生成されたループ変形情報テーブルとを
入力し、該ループ構造を、初期値0,終値n/inc
r,増分値1で指標変数iをもつ外側ループと初期値i
nit+i,終値term,増分値nの内側ループとか
らなる2重ループ構造に変形した第2中間テキストを生
成するループ構造変形手段と、該ループ構造変形手段に
より生成された第2中間テキストを入力し、2重ループ
の内側ループ構造をベクトル処理を行う第3中間テキス
トに変形するベクトル化手段と、該ベクトル化手段で生
成された第3中間テキストを入力し一連のベクトル命令
およびスカラ命令列を生成する命令生成手段とを備えて
いる。
The vectorization method of the present invention that enables vectorization of a loop as shown in FIG. 6 inputs a source program written in a high-level language, and x (i) = f (x (i-
In a compiler for generating a target program for a vector computer having a vector instruction for processing a recurrence formula of the form 1)), a loop structure in a source program is recognized, and a first intermediate text for the loop structure is generated. Initial value init, final value term of the loop,
The loop structure analysis means for generating the loop information table storing the information of the increment value incr, the first intermediate text of the loop structure obtained by the loop structure analysis means and the loop information table are input, and x (i) = f (x (i-
n)), and n is the increment value incr
And a loop structure selecting means for generating a loop deformation information table storing n and a loop structure selected by the loop structure selecting means are generated by the loop structure analyzing means. First
The intermediate text and the loop information table and the loop transformation information table generated by the loop structure selection means are input, and the loop structure is set to an initial value 0 and a final value n / inc.
r, an outer loop having an index variable i with an increment value of 1 and an initial value i
A loop structure modification means for generating a second intermediate text modified into a double loop structure consisting of nit + i, a final value term, and an inner loop with an increment value n, and the second intermediate text generated by the loop structure modification means are input. A vectorization means for transforming the inner loop structure of the double loop into a third intermediate text for vector processing, and a third intermediate text generated by the vectorization means are input to generate a series of vector instructions and a scalar instruction sequence. And an instruction generating means for performing the operation.

【0016】[0016]

【作用】図2のようなループのベクトル化を可能にする
本発明のベクトル化方式においては、高級言語で書かれ
た原始プログラムを入力し、ベクトル計算機に対する目
的プログラムを生成する際、ループ構造解析手段が、原
始プログラム中のループ構造を認識し、該ループ構造に
対する第1中間テキストを生成するとともに、該ループ
の初期値init,終値term,増分値incrの情
報を格納したループ情報テーブルを生成し、定義参照関
係解析手段が、ループ構造解析手段で求められた前記ル
ープ構造の第1中間テキストおよびループ情報テーブル
を入力し、ループ構造内に現れる配列の定義・参照関係
を解析し、配列の定義参照関係の情報を格納した定義参
照テーブルを生成し、ループ構造選択手段が、定義参照
関係解析手段で求められた定義参照テーブルを入力し、
前記ループ構造中に後方依存関係のある配列があった場
合、該ループ構造中で該配列の各要素が参照される繰り
返し回と定義される繰り返し回の差nを求め、その差n
の値がループ構造内で一定であるループ構造を選択する
とともに、nを格納したループ変形情報テーブルを生成
し、ループ構造変形手段が、ループ構造選択手段で選択
されたループ構造について前記ループ構造解析手段で生
成された第1中間テキストおよびループ情報テーブル
と、前記ループ構造選択手段で生成されたループ変形情
報テーブルとを入力し、前記ループ構造を、初期値in
it,終値term,増分値incr×nの指標変数i
をもつ外側ループと元のループ構造のiからmin(i
+(n−1)×incr,term)の繰り返しを実行
する内側ループとからなる2重ループ構造に変形した第
2中間テキストを生成し、ベクトル化手段が、ループ構
造変形手段により生成された第2中間テキストを入力
し、2重ループの内側ループ構造をベクトル処理を行う
第3中間テキストに変形し、命令生成手段が、ベクトル
化手段で生成された第3中間テキストを入力し一連のベ
クトル命令およびスカラ命令列を生成する。
In the vectorization method of the present invention that enables vectorization of a loop as shown in FIG. 2, when a source program written in a high-level language is input and an object program for a vector computer is generated, a loop structure analysis is performed. The means recognizes a loop structure in the source program, generates a first intermediate text for the loop structure, and generates a loop information table storing information on an initial value init, a final value term, and an increment value incr of the loop. The definition reference relation analysis means inputs the first intermediate text and the loop information table of the loop structure obtained by the loop structure analysis means, analyzes the definition / reference relation of the array appearing in the loop structure, and defines the array. A definition reference table that stores information on reference relationships is generated, and the loop structure selection means obtains the definition reference relationship analysis means. Enter the definition look-up table, which is,
When there is a sequence having a backward dependency in the loop structure, the difference n between the repetition times defined as the repetition times in which each element of the sequence is referred to in the loop structure is calculated, and the difference n
A loop structure whose value is constant in the loop structure is selected, a loop deformation information table storing n is generated, and the loop structure deforming means analyzes the loop structure for the loop structure selected by the loop structure selecting means. The first intermediate text and loop information table generated by the means and the loop deformation information table generated by the loop structure selecting means are input, and the loop structure is set to the initial value in.
index variable i of it, closing price term, and increment value incr × n
From the outer loop with and the original loop structure i to min (i
+ (N−1) × incr, term) to generate a second intermediate text transformed into a double loop structure consisting of an inner loop that executes iterations, and the vectorization means generates the second intermediate text, and the vectorization means generates the second intermediate text. Two intermediate texts are input, the inner loop structure of the double loop is transformed into a third intermediate text for vector processing, and the instruction generation means inputs the third intermediate text generated by the vectorization means and a series of vector instructions. And a scalar instruction sequence are generated.

【0017】また、図6のようなループのベクトル化を
可能にする本発明のベクトル化方式においては、高級言
語で書かれた原始プログラムを入力し、x(i)=f
(x(i−1))の形式の漸化式を処理するベクトル命
令をもつベクトル計算機に対する目的プログラムを生成
する際、ループ構造解析手段が、原始プログラム中のル
ープ構造を認識し、該ループ構造に対する第1中間テキ
ストを生成するとともに、該ループの初期値init,
終値term,増分値incrの情報を格納したループ
情報テーブルを生成し、ループ構造選択手段が、ループ
構造解析手段で求められた前記ループ構造の第1中間テ
キストおよびループ情報テーブルを入力し、x(i)=
f(x(i−n))の形式の式を含みしかもnが前記増
分値incrの倍数となっているループ構造を選択する
とともにnを格納したループ変形情報テーブルを生成
し、ループ構造変形手段が、ループ構造選択手段で選択
されたループ構造について前記ループ構造解析手段で生
成された第1中間テキストおよびループ情報テーブル
と、前記ループ構造選択手段で生成されたループ変形情
報テーブルとを入力し、前記ループ構造を、初期値0,
終値n/incr,増分値1で指標変数iをもつ外側ル
ープと初期値init+i,終値term,増分値nの
内側ループとからなる2重ループ構造に変形した第2中
間テキストを生成し、ベクトル化手段が、ループ構造変
形手段により生成された第2中間テキストを入力し、2
重ループの内側ループ構造をベクトル処理を行う第3中
間テキストに変形し、命令生成手段が、ベクトル化手段
で生成された第3中間テキストを入力し一連のベクトル
命令およびスカラ命令列を生成する。
Further, in the vectorization method of the present invention that enables vectorization of a loop as shown in FIG. 6, a source program written in a high-level language is input and x (i) = f
When generating an object program for a vector computer having a vector instruction for processing a recurrence formula of the form (x (i-1)), the loop structure analysis means recognizes the loop structure in the source program, and the loop structure Generate the first intermediate text for the initial value of the loop init,
A loop information table storing information on the final value term and the increment value incr is generated, and the loop structure selecting means inputs the first intermediate text and the loop information table of the loop structure obtained by the loop structure analyzing means, and x ( i) =
A loop structure information table is created by selecting a loop structure that includes an expression of the form f (x (i−n)) and n is a multiple of the increment value incr, and generates a loop deformation information table storing n. Input the first intermediate text and the loop information table generated by the loop structure analysis means for the loop structure selected by the loop structure selection means, and the loop deformation information table generated by the loop structure selection means, The loop structure has an initial value of 0,
Generate a second intermediate text transformed into a double loop structure consisting of an outer loop having a final value n / incr and an increment value of 1 and an index variable i and an initial loop init + i, a final value term, and an inner loop of an increment value n, and vectorizing The means inputs the second intermediate text generated by the loop structure transforming means, and 2
The inner loop structure of the heavy loop is transformed into a third intermediate text for vector processing, and the instruction generating means inputs the third intermediate text generated by the vectorizing means and generates a series of vector instructions and a scalar instruction sequence.

【0018】[0018]

【実施例】次に本発明の実施例について図面を参照しな
がら説明する。
Embodiments of the present invention will now be described with reference to the drawings.

【0019】図1を参照すると、本発明のベクトル化方
式の一実施例を適用したコンパイラ2は、ループ構造解
析手段3と、定義参照関係解析手段4と、ループ構造選
択手段5と、ループ構造変形手段6と、ベクトル化手段
7と、命令生成手段8とから構成され、高級言語で書か
れた原始プログラム1を入力し、ベクトル計算機に対す
る目的プログラム9を生成する。
Referring to FIG. 1, a compiler 2 to which an embodiment of the vectorization method of the present invention is applied includes a loop structure analyzing means 3, a definition reference relation analyzing means 4, a loop structure selecting means 5, and a loop structure. The transformation program 6, the vectorization device 7, and the command generation device 8 are provided, and the source program 1 written in a high-level language is input to generate a target program 9 for a vector computer.

【0020】なお、図1において、10,14,15,
11,12,13はそれぞれコンパイラ2が処理の過程
で生成する第1,第2,第3中間テキスト,ループ情報
テーブル,定義参照テーブル,ループ変形情報テーブル
をあらわす。
In FIG. 1, 10, 14, 15,
Reference numerals 11, 12, and 13 respectively represent the first, second, and third intermediate texts, the loop information table, the definition reference table, and the loop modification information table generated by the compiler 2 during the processing.

【0021】以下、本実施例の各部の機能および動作を
説明する。
The function and operation of each part of this embodiment will be described below.

【0022】コンパイラ2は原始プログラム1を入力
し、目的プログラム9を生成する。
The compiler 2 inputs the source program 1 and generates a target program 9.

【0023】このとき、ループ構造解析手段3は原始プ
ログラム1中に現れるループ構造を認識し、そのループ
構造に対する第1中間テキスト10を生成するととも
に、そのループ構造の初期値init,終値term,
増分値incrを格納したループ情報テーブル11を生
成する。
At this time, the loop structure analysis means 3 recognizes the loop structure appearing in the source program 1 and generates the first intermediate text 10 for the loop structure, and at the same time, the initial value init, the final value term of the loop structure,
The loop information table 11 storing the increment value incr is generated.

【0024】つぎに定義参照関係解析手段4は、ループ
構造解析手段3で生成された第1中間テキスト10およ
びループ情報テーブル11を入力し、そのループ構造中
に現れるすべての配列の定義参照関係を解析し、各配列
の原始プログラム中で定義参照されている位置,定義参
照される繰り返し回の情報を求め、定義参照テーブル1
2に格納する。
Next, the definition / reference relationship analysis means 4 inputs the first intermediate text 10 and the loop information table 11 generated by the loop structure analysis means 3, and determines the definition / reference relationships of all sequences appearing in the loop structure. Analysis is performed to obtain information on the position of each array that is defined and referenced in the source program and the number of times that the definition is referenced repeatedly. Definition reference table 1
Store in 2.

【0025】つぎにループ構造選択手段5は、定義参照
関係解析手段4で生成された定義参照テーブル12を入
力し、ループ構造中に後方依存関係をもつ配列の定義参
照があるかどうか調べる。もし後方依存関係が或る配列
が存在したなら、その配列の各要素が定義される繰り返
し回と参照される繰り返し回の差をとり、それをnとす
る。そして、もしnがそのループ構造内で値が一定なら
ば、そのループ構造を変形可能としてループ変形情報テ
ーブル13にnを格納してループ構造変形手段6に制御
を渡す。
Next, the loop structure selecting means 5 inputs the definition reference table 12 generated by the definition / reference relationship analyzing means 4 and checks whether or not there is a definition reference of an array having a backward dependency in the loop structure. If there is a certain array having a backward dependency relationship, the difference between the number of times that each element of the array is defined and the number of times that the element is referenced is taken, and this is n. Then, if n has a constant value in the loop structure, the loop structure is made deformable, n is stored in the loop deformation information table 13, and control is passed to the loop structure deforming means 6.

【0026】つぎにループ構造変形手段6はループ構造
解析手段3で生成された第1中間テキスト10およびル
ープ情報テーブル11と、ループ構造選択手段5で生成
されたループ変形情報テーブル13とを入力し、初期値
init、終値term、増分値incr×nの外側ル
ープと、初期値i,終値MIN(i+(n−1)×in
cr,term)、増分値incrの内側ループとから
なる2重ループ構造に変形した第2中間テキスト14を
生成する。ここでiは外側ループの指標変数、MIN
(n,m)はn,mのうち小さい値をもつ方を返す関数
である。
Next, the loop structure modification means 6 inputs the first intermediate text 10 and the loop information table 11 generated by the loop structure analysis means 3 and the loop modification information table 13 generated by the loop structure selection means 5. , An initial value init, a final value term, an increment value incr × n outer loop, and an initial value i, a final value MIN (i + (n−1) × in
cr, term) and the inner loop of the increment value incr to generate a second intermediate text 14 transformed into a double loop structure. Where i is the index variable of the outer loop, MIN
(N, m) is a function that returns the smaller one of n and m.

【0027】たとえば、図2に示したループ構造は、初
期値が1,終値が100,増分値が1,nが10なの
で、図3に示すように、外側ループの初期値が1,終値
が100,増分値が10で、内側ループの初期値が外側
ループの指標変数L,終値がMIN(L+(10−1)
×1,100)つまりMIN(L+9,100),増分
値1であるような、2重ループ構造に変形される。この
2重ループ構造の内側ループにおいては、条件が満た
されているためにベクトル化が可能となっている。
For example, in the loop structure shown in FIG. 2, the initial value is 1, the final value is 100, the increment value is 1 and n is 10. Therefore, as shown in FIG. 100, the increment value is 10, the initial value of the inner loop is the index variable L of the outer loop, and the final value is MIN (L + (10-1)
X1,100), that is, MIN (L + 9,100), and an increment value of 1, and is transformed into a double loop structure. The inner loop of the double loop structure can be vectorized because the condition is satisfied.

【0028】つぎに、ベクトル化手段7では、ループ構
造変形手段6で変形された第2中間テキスト14を入力
し、2重ループの内側ループ構造をベクトル処理の第3
中間テキスト15に変形する。
Next, in the vectorization means 7, the second intermediate text 14 transformed by the loop structure transformation means 6 is input, and the inner loop structure of the double loop is subjected to the third vector processing.
It is transformed into the intermediate text 15.

【0029】最後に、命令生成手段8はベクトル化手段
7で生成された第3中間テキスト15を入力して一連の
ベクトル命令およびスカラ命令を生成し、目的プログラ
ム9を出力する。
Finally, the instruction generation means 8 inputs the third intermediate text 15 generated by the vectorization means 7 to generate a series of vector instructions and scalar instructions, and outputs the object program 9.

【0030】図4を参照すると、本発明のベクトル化方
式の別の実施例を適用したコンパイラ42の一実施例
は、ループ構造解析手段43と、ループ構造選択手段4
4と、ループ構造変形手段45と、ベクトル化手段46
と、命令生成手段47とから構成され、高級言語で書か
れた原始プログラム41を入力し、ベクトル計算機に対
する目的プログラム48を生成する。
Referring to FIG. 4, one embodiment of a compiler 42 to which another embodiment of the vectorization method of the present invention is applied is a loop structure analyzing means 43 and a loop structure selecting means 4.
4, loop structure deformation means 45, and vectorization means 46
And a command generation means 47, which inputs a source program 41 written in a high-level language and generates a target program 48 for a vector computer.

【0031】なお、図4において、49,52,53,
50,51はそれぞれコンパイラ42が処理の過程で生
成する第1,第2,第3中間テキスト,ループ情報テー
ブル,ループ変形情報テーブルをあらわす。
In FIG. 4, 49, 52, 53,
Reference numerals 50 and 51 respectively represent the first, second, and third intermediate texts, the loop information table, and the loop modification information table generated by the compiler 42 during the processing.

【0032】また、目的プログラムを生成する対象とな
るベクトル計算機は、x(i)=x(i−1)+y
(i)の形式の漸化式のベクトル命令を備えているもの
とする。
The vector computer which is the target for generating the target program is x (i) = x (i-1) + y
It is assumed that a recursive vector instruction of the form (i) is provided.

【0033】以下、本実施例の各部の機能および動作を
説明する。
The function and operation of each part of this embodiment will be described below.

【0034】コンパイラ42は原始プログラム41を入
力し、目的プログラム48を生成する。
The compiler 42 inputs the source program 41 and generates a target program 48.

【0035】このとき、ループ構造解析手段43は原始
プログラム41中に現れるループ構造を認識し、そのル
ープ構造に対する第1中間テキスト49を生成するとと
もに、そのループ構造の初期値init,終値ter
m,増分値incrを格納したループ情報テーブル50
を生成する。
At this time, the loop structure analysis means 43 recognizes the loop structure appearing in the source program 41, generates the first intermediate text 49 for the loop structure, and also sets the initial value init and the final value ter of the loop structure.
Loop information table 50 storing m and increment value incr
To generate.

【0036】たとえば、図6のループ構造では、初期値
3,終値12,増分値1というループ情報テーブル50
が生成される。
For example, in the loop structure of FIG. 6, a loop information table 50 having an initial value 3, a final value 12, and an increment value 1
Is generated.

【0037】つぎにループ構造選択手段44は、ループ
構造解析手段43で生成された第1中間テキスト49お
よびループ情報テーブル50を入力し、ループ構造中に
x(i)=x(i−m)+y(i)の形の式が現れるか
どうかを調べ、もしそのような式があったならば、mが
ループ構造の増分値incrの倍数であるかどうかを調
べる。そして、mがincrの倍数であればそのループ
構造を変形によりベクトル化可能であるものとして、ル
ープ変形情報テーブル51にmを格納し、つぎのループ
構造変形手段45に制御を渡す。
Next, the loop structure selecting means 44 inputs the first intermediate text 49 and the loop information table 50 generated by the loop structure analyzing means 43, and x (i) = x (im) in the loop structure. Check if an expression of the form + y (i) appears, and if so, check if m is a multiple of the increment value incr of the loop structure. If m is a multiple of incr, the loop structure can be vectorized by deformation, m is stored in the loop deformation information table 51, and control is passed to the next loop structure deforming unit 45.

【0038】たとえば、図6のループ構造では、代入文
dはx(i)=x(i−n)+y(i)の形式に合致
し、しかもm=3=3×1で、ループ構造の増分値1の
倍数となっており条件が満たされているので、ループ変
形情報テーブル51に3を格納する。
For example, in the loop structure of FIG. 6, the assignment statement d conforms to the form x (i) = x (i−n) + y (i), and m = 3 = 3 × 1. Since the increment value is a multiple of 1 and the condition is satisfied, 3 is stored in the loop deformation information table 51.

【0039】つぎにループ構造変形手段45は、ループ
構造解析手段43で生成された第1中間テキスト49お
よびループ構造選択手段44で生成されたループ変形情
報テーブル51を入力し、ループ構造を初期値0,終値
m/incr−1,増分値1で制御変数iの外側ループ
と、初期値incr+i,終値term,増分値nの内
側ループとからなる2重ループ構造に変形した第2中間
テキスト52を生成する。
Next, the loop structure modification means 45 inputs the first intermediate text 49 created by the loop structure analysis means 43 and the loop modification information table 51 created by the loop structure selection means 44, and sets the loop structure as an initial value. The second intermediate text 52 transformed into a double loop structure consisting of an outer loop of the control variable i with 0, the final value m / incr−1, and the increment value 1 and an inner loop with the initial value incr + i, the final value term, and the increment value n. To generate.

【0040】たとえば、図6に示したループ構造は初期
値3,終値12,増分値1,m=3であるから、図8に
示すような、初期値0,終値3/1−1=2,増分値
1,制御変数Lの外側ループと、初期値が1+L,終値
が12,増分値が3の内側ループからなる2重ループ構
造に変形される。
For example, since the loop structure shown in FIG. 6 has an initial value 3, a final value 12, an increment value 1, and m = 3, the initial value 0 and the final value 3 / 1-1 = 2 as shown in FIG. , An outer loop of the increment value 1 and the control variable L, and an inner loop having an initial value of 1 + L, a final value of 12, and an increment value of 3 are transformed into a double loop structure.

【0041】つぎに、ベクトル化手段46では、ループ
構造変形手段45で変形された第2中間テキスト52を
入力し、2重ループの内側ループ構造をベクトル処理の
第3中間テキスト53に変形する。
Next, the vectorizing means 46 inputs the second intermediate text 52 transformed by the loop structure transforming means 45 and transforms the inner loop structure of the double loop into the third intermediate text 53 of vector processing.

【0042】最後に、命令生成手段47はベクトル化手
段46で生成された第3中間テキスト53を入力して一
連のベクトル命令およびスカラ命令を生成し、目的プロ
グラム48を出力する。
Finally, the instruction generation means 47 inputs the third intermediate text 53 generated by the vectorization means 46 to generate a series of vector instructions and scalar instructions, and outputs the object program 48.

【0043】[0043]

【発明の効果】以上説明した本発明のベクトル化方式
は、以下のような効果を有する。
The vectorization method of the present invention described above has the following effects.

【0044】後方依存関係のある間にまたがる定義参照
の依存関係がある図2のようなループ構造もベクトル化
できるため、実行速度がより高速な目的プログラムを生
成できる。
Since the loop structure as shown in FIG. 2 in which there is a definition reference dependency that extends over a backward dependency, the target program with a higher execution speed can be generated.

【0045】x(i)=f(x(i−1))の形式の漸
化式を処理するベクトル命令をもつベクトル計算機に対
し、増分値incrのループ構造中にx(i)=f(x
(i−n))でnがincrの倍数であるような形式の
式が含まれる場合にもベクトル化できるようになり、よ
り性能の高い目的プログラムを生成できる。
For a vector computer having a vector instruction for processing a recurrence formula of the form x (i) = f (x (i-1)), x (i) = f (in the loop structure of the increment value incr x
(I−n)) can be vectorized even when an expression of a form in which n is a multiple of incr is included, and a target program with higher performance can be generated.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例を適用したコンパイラの構成
図である。
FIG. 1 is a configuration diagram of a compiler to which an embodiment of the present invention is applied.

【図2】FORTRAN言語で記述された後方依存関係
のあるループ構造の例を示す図である。
FIG. 2 is a diagram showing an example of a loop structure having a backward dependency described in the FORTRAN language.

【図3】図2のループ構造を図1の実施例のベクトル化
方式で変形したループ構造の説明図である。
FIG. 3 is an explanatory diagram of a loop structure in which the loop structure of FIG. 2 is modified by the vectorization method of the embodiment of FIG.

【図4】本発明の別の実施例を適用したコンパイラの構
成図である。
FIG. 4 is a configuration diagram of a compiler to which another embodiment of the present invention is applied.

【図5】FORTRAN言語で記述された漸化式を含む
ループ構造の例を示す図である。
FIG. 5 is a diagram showing an example of a loop structure including a recurrence expression written in the FORTRAN language.

【図6】FORTRAN言語で記述されたx(i)=f
(x(i−n))の形式の代入文を含むループ構造の例
を示す図である。
FIG. 6 is x (i) = f described in FORTRAN language.
It is a figure which shows the example of the loop structure containing the assignment statement of the form of (x (i-n)).

【図7】図6のループ構造における配列Aの各要素の依
存関係の説明図である。
7 is an explanatory diagram of a dependency relationship of each element of the array A in the loop structure of FIG.

【図8】図6に示したループ構造を図4の実施例のベク
トル化方式で変形したループ構造の説明図である。
8 is an explanatory diagram of a loop structure obtained by modifying the loop structure shown in FIG. 6 by the vectorization method of the embodiment of FIG.

【符号の説明】[Explanation of symbols]

1,41…原始プログラム 2,42…コンパイラ 3,43…ループ構造解析手段 4…定義参照関係解析手段 5,44…ループ構造選択手段 6,45…ループ構造変形手段 7,46…ベクトル化手段 8,47…命令生成手段 9,48…目的プログラム 10,49…第1中間テキスト 11,50…ループ情報テーブル 12…定義参照テーブル 13,51…ループ変形情報テーブル 14,52…第2中間テキスト 15,53…第3中間テキスト 1, 41 ... Primitive program 2, 42 ... Compiler 3, 43 ... Loop structure analysis means 4 ... Definition reference relationship analysis means 5, 44 ... Loop structure selection means 6, 45 ... Loop structure transformation means 7, 46 ... Vectorization means 8 , 47 ... Instruction generating means 9, 48 ... Objective program 10, 49 ... First intermediate text 11, 50 ... Loop information table 12 ... Definition reference table 13, 51 ... Loop transformation information table 14, 52 ... Second intermediate text 15, 53 ... third intermediate text

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 高級言語で書かれた原始プログラムを入
力し、ベクトル計算機に対する目的プログラムを生成す
るコンパイラにおいて、 原始プログラム中のループ構造を認識し、該ループ構造
に対する第1中間テキストを生成するとともに、該ルー
プの初期値init,終値term,増分値incrの
情報を格納したループ情報テーブルを生成するループ構
造解析手段と、 該ループ構造解析手段で求められた前記ループ構造の第
1中間テキストおよびループ情報テーブルを入力し、ル
ープ構造内に現れる配列の定義・参照関係を解析し、配
列の定義参照関係の情報を格納した定義参照テーブルを
生成する定義参照関係解析手段と、 該定義参照関係解析手段で求められた定義参照テーブル
を入力し、前記ループ構造中に後方依存関係のある配列
があった場合、該ループ構造中で該配列の各要素が参照
される繰り返し回と定義される繰り返し回の差nを求
め、その差nの値がループ構造内で一定であるループ構
造を選択するとともに、nを格納したループ変形情報テ
ーブルを生成するループ構造選択手段と、 該ループ構造選択手段で選択されたループ構造について
前記ループ構造解析手段で生成された第1中間テキスト
およびループ情報テーブルと、前記ループ構造選択手段
で生成されたループ変形情報テーブルとを入力し、前記
ループ構造を、初期値init,終値term,増分値
incr×nの指標変数iをもつ外側ループと元のルー
プ構造のiからmin(i+(n−1)×incr,t
erm)の繰り返しを実行する内側ループとからなる2
重ループ構造に変形した第2中間テキストを生成するル
ープ構造変形手段と、 該ループ構造変形手段により生成された第2中間テキス
トを入力し、2重ループの内側ループ構造をベクトル処
理を行う第3中間テキストに変形するベクトル化手段
と、 該ベクトル化手段で生成された第3中間テキストを入力
し一連のベクトル命令およびスカラ命令列を生成する命
令生成手段とを含むことを特徴とするベクトル化方式。
1. A compiler, which inputs a source program written in a high-level language and generates an object program for a vector computer, recognizes a loop structure in the source program and generates a first intermediate text for the loop structure. A loop structure analysis means for generating a loop information table storing information of an initial value init, a final value term, and an increment value incr of the loop, and a first intermediate text and a loop of the loop structure obtained by the loop structure analysis means. A definition / reference relation analysis means for inputting an information table, analyzing the definition / reference relation of an array appearing in a loop structure, and generating a definition reference table storing information on the definition / reference relation of the array, and the definition / reference relation analysis means Enter the definition reference table obtained in step 1 above and enter the definition reference table When there is a column, a difference n between repetition times defined as repetition times in which each element of the array is referred to in the loop structure is obtained, and a value of the difference n is constant within the loop structure. Loop structure selecting means for selecting and generating a loop deformation information table storing n, and a first intermediate text and loop information table generated by the loop structure analyzing means for the loop structure selected by the loop structure selecting means And the loop deformation information table generated by the loop structure selecting means, and the loop structure is defined as an outer loop having an index variable i having an initial value init, a final value term, and an increment value incr × n, and the original loop structure. I to min (i + (n-1) × incr, t
erm) and an inner loop that executes iteration 2
A loop structure modification means for generating a second intermediate text modified into a double loop structure, and a second intermediate text generated by the loop structure modification means are input to perform a vector process on the inner loop structure of the double loop. A vectorization method characterized by including vectorization means for transforming into intermediate text, and instruction generation means for inputting the third intermediate text generated by the vectorization means to generate a series of vector instructions and a scalar instruction sequence. ..
【請求項2】 高級言語で書かれた原始プログラムを入
力し、x(i)=f(x(i−1))の形式の漸化式を
処理するベクトル命令をもつベクトル計算機に対する目
的プログラムを生成するコンパイラにおいて、 原始プログラム中のループ構造を認識し、該ループ構造
に対する第1中間テキストを生成するとともに、該ルー
プの初期値init,終値term,増分値incrの
情報を格納したループ情報テーブルを生成するループ構
造解析手段と、 該ループ構造解析手段で求められた前記ループ構造の第
1中間テキストおよびループ情報テーブルを入力し、x
(i)=f(x(i−n))の形式の式を含みしかもn
が前記増分値incrの倍数となっているループ構造を
選択するとともにnを格納したループ変形情報テーブル
を生成するループ構造選択手段と、 該ループ構造選択手段で選択されたループ構造について
前記ループ構造解析手段で生成された第1中間テキスト
およびループ情報テーブルと、前記ループ構造選択手段
で生成されたループ変形情報テーブルとを入力し、前記
ループ構造を、初期値0,終値n/incr,増分値1
で指標変数iをもつ外側ループと初期値init+i,
終値term,増分値nの内側ループとからなる2重ル
ープ構造に変形した第2中間テキストを生成するループ
構造変形手段と、 該ループ構造変形手段により生成された第2中間テキス
トを入力し、2重ループの内側ループ構造をベクトル処
理を行う第3中間テキストに変形するベクトル化手段
と、 該ベクトル化手段で生成された第3中間テキストを入力
し一連のベクトル命令およびスカラ命令列を生成する命
令生成手段とを含むことを特徴とするベクトル化方式。
2. A target program for a vector computer having a vector instruction for inputting a source program written in a high-level language and processing a recurrence formula of the form x (i) = f (x (i-1)). A compiler for generating recognizes a loop structure in a source program, generates a first intermediate text for the loop structure, and stores a loop information table storing information on an initial value init, a final value term, and an increment value incr of the loop. Input the loop structure analysis means to be generated, the first intermediate text of the loop structure obtained by the loop structure analysis means and the loop information table, and x
Contains an expression of the form (i) = f (x (i−n)), and n
Loop structure selecting means for selecting a loop structure in which is a multiple of the increment value incr and generating a loop deformation information table storing n, and the loop structure analysis for the loop structure selected by the loop structure selecting means. The first intermediate text and the loop information table generated by the means and the loop deformation information table generated by the loop structure selecting means are input, and the loop structure is set to an initial value 0, a final value n / incr, and an increment value 1
The outer loop with index variable i and the initial value init + i,
A loop structure modification means for generating a second intermediate text modified into a double loop structure consisting of an inner loop having a final value term and an increment value n, and a second intermediate text generated by the loop structure modification means are input, and 2 Vectorizing means for transforming the inner loop structure of the heavy loop into a third intermediate text for vector processing, and an instruction for inputting the third intermediate text generated by the vectorizing means to generate a series of vector instructions and a scalar instruction sequence A vectorization method comprising: a generation means.
JP27832291A 1991-09-30 1991-09-30 Vectrization system Pending JPH0594470A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27832291A JPH0594470A (en) 1991-09-30 1991-09-30 Vectrization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27832291A JPH0594470A (en) 1991-09-30 1991-09-30 Vectrization system

Publications (1)

Publication Number Publication Date
JPH0594470A true JPH0594470A (en) 1993-04-16

Family

ID=17595716

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27832291A Pending JPH0594470A (en) 1991-09-30 1991-09-30 Vectrization system

Country Status (1)

Country Link
JP (1) JPH0594470A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005078579A1 (en) * 2004-02-12 2005-08-25 Matsushita Electric Industrial Co., Ltd. Program conversion device and program conversion method
JP2009070070A (en) * 2007-09-12 2009-04-02 Nec Corp Compiler and compile method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005078579A1 (en) * 2004-02-12 2005-08-25 Matsushita Electric Industrial Co., Ltd. Program conversion device and program conversion method
JP2009070070A (en) * 2007-09-12 2009-04-02 Nec Corp Compiler and compile method

Similar Documents

Publication Publication Date Title
US4833606A (en) Compiling method for vectorizing multiple do-loops in source program
Wegner The Vienna definition language
US4821181A (en) Method for converting a source program of high level language statement into an object program for a vector processor
JP4077252B2 (en) Compiler program and compile processing method
JPH04102926A (en) Development optimizing system for repeating loop
US5349665A (en) Compiler vectorizing system
JPH0594470A (en) Vectrization system
US9600777B2 (en) Configuring and optimizing computational structure for a machine learning application using a tuple of vectors
JPH07152576A (en) In-line expansion method for programming language having array function
JP3057904B2 (en) Vectorization method
Laarfi et al. Constructing a Simple Verbal Compiler
JPH04307624A (en) Loop optimization system
JP2003256214A (en) Loop conversion method using array extension
JPH03110670A (en) Vector computer
JP2748582B2 (en) Compile processing unit
JP2842057B2 (en) Objective program generator
JPH05257707A (en) Compiling system
Huang et al. Efficient Inference of Transformers on Bare-Metal Devices with RISC-V Vector Processors
JPH0235349B2 (en) RUUPUNAIHAIRETSUSHORIBEKUTORUKASHORIHOSHIKI
JP2533938B2 (en) Vector arithmetic processing method
JPS62169272A (en) Unrolling processing system for vector arithmetic string loop
JPH0512033A (en) Parallel compiling system
JP2003337707A (en) Method for increasing speed of compiler and loop for processing list structure data
JPH08221276A (en) Compiler
JPH06222928A (en) Loop optimizing method