[go: up one dir, main page]

JPH11184710A - Device and method for optimizing real argument of partial arrangement - Google Patents

Device and method for optimizing real argument of partial arrangement

Info

Publication number
JPH11184710A
JPH11184710A JP35314597A JP35314597A JPH11184710A JP H11184710 A JPH11184710 A JP H11184710A JP 35314597 A JP35314597 A JP 35314597A JP 35314597 A JP35314597 A JP 35314597A JP H11184710 A JPH11184710 A JP H11184710A
Authority
JP
Japan
Prior art keywords
allocation
code
area
argument
partial array
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
JP35314597A
Other languages
Japanese (ja)
Inventor
Yasuharu Hayashi
康晴 林
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 JP35314597A priority Critical patent/JPH11184710A/en
Publication of JPH11184710A publication Critical patent/JPH11184710A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PROBLEM TO BE SOLVED: To attain shortening in execution time by omitting the allocation of a memory area and the copy of a value as much as possible when linking the number of partial arrangement execution and temporary argument arrangement by generating an optimizing code, to which the area allocation is connected, based on area allocation omission enable conditions. SOLUTION: A source program is inputted to an optimizing device 1 of a compiler and concerning the area allocated to the arrangement of respective arguments, a translation time continuity discriminating means 2 discriminates continuity. Based on the discriminated result of the translation time continuity discriminating means 2, an individual output code generating means 31 generates an output code for allocating the area to each real argument of partial arrangement. A memory allocation connection code generating means 32 generates an optimizing code reducing the number of times of memory allocation by connecting the allocated areas out of the output of the individual output code generating means 31. In this case, when it is possible to generate the allocation of plural memories, a code is generated by simultaneously connecting them to one memory allocation.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、フォートランコ
ンパイラの最適化に関し、特に部分配列実引数と仮引数
配列を結合する際の領域割り当てを省略及び連結させる
ことにより、最適化する装置及び方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to optimization of a Fortran compiler, and more particularly to an apparatus and a method for optimizing by allocating and omitting an area allocation when combining a partial array actual argument and a dummy argument array.

【0002】[0002]

【従来の技術】従来、部分配列実引数を仮引数配列と結
合させる際には、部分配列の大きさ分の領域を新たに割
り付け、その領域に値をコピーした上で、呼ばれ側手続
きに渡す方法が用いられていた。従来のコンパイルコー
ドを示す図6を参照すると、全体の配列 A(100,
100),B(100,100),C(100,10
0)(行番601)に対して、部分配列A(1:10
0,5),B(X,8),C(5,1:100)を割り付
けるとき、各部分配列に対して、個別にTMP1,TM
P2,TMP3の領域をとり(行番602乃至60
8)、SUB2(TMP1,TMP2,TMP3)(行
番609)として、各部分配列を割り付けている。しか
し、この方法では、個別に領域をとっているため、部分
配列実引数を持つ手続き呼び出しの度に、メモリ割り付
けと値のコピーのオーバヘッドが生じるため、プログラ
ムの実行性能が低下する。
2. Description of the Related Art Conventionally, when a partial array actual argument is combined with a dummy argument array, an area corresponding to the size of the partial array is newly allocated, a value is copied to the area, and then the called procedure is executed. The method of passing was used. Referring to FIG. 6, which shows a conventional compiled code, the entire array A (100,
100), B (100, 100), C (100, 10)
0) (line number 601), the partial array A (1:10
0,5), B (X, 8), C (5,1: 100), TMP1, TM
The area of P2 and TMP3 is taken (line numbers 602 to 60
8), each partial sequence is allocated as SUB2 (TMP1, TMP2, TMP3) (line number 609). However, in this method, since the areas are individually taken, each time a procedure having a partial array actual argument is called, an overhead of memory allocation and copying of a value occurs, and thus the execution performance of the program is reduced.

【0003】[0003]

【発明が解決しようとする課題】第1の問題点は、部分
配列実引数を持つ手続き呼び出しの度に、メモリ割り付
けと値をコピーすることに対するオーバヘッドが生じ
て、プログラムの実行性能が低下することである。その
理由は、部分実引数を仮引数配列と結合させる際には、
部分配列の大きさの領域を新たに割り付け、そこに値を
コピーした上で、新たに割り付けた領域の先頭アドレス
を呼ばれ側手続きに渡すからである。
The first problem is that every time a procedure having a partial array actual argument is called, an overhead for memory allocation and copying of a value occurs, thereby deteriorating the execution performance of the program. It is. The reason is that when combining a partial actual argument with a dummy argument array,
This is because an area of the size of the partial array is newly allocated, the value is copied there, and the start address of the newly allocated area is passed to the called procedure.

【0004】この発明の目的は、上記の点に鑑み、部分
配列実引数を仮引数配列と結合する際に、可能な限りメ
モリ領域の割り付けおよび値のコピーを省く最適化を行
って、実行時間の短縮を行うことである。
SUMMARY OF THE INVENTION In view of the above, it is an object of the present invention to optimize the execution of a partial array actual argument by associating a memory area and copying a value as much as possible when combining an actual argument with a dummy argument array. Is to shorten.

【0005】[0005]

【課題を解決するための手段】そのため、この発明の、
フォートラン言語をコンパイルし、ソースプログラム中
の部分配列実引数を仮引数配列と結合する際の領域割り
当てを省略及び連結させることにより、最適化したソー
スコードを生成する部分配列実引数最適化装置にあっ
て、前記部分配列の領域割り当ての省略可能条件を判定
する翻訳時連続性判定手段と、前記部分配列の領域割り
当てを連結した最適化コードを生成するコード生成手段
と、を備え、前記コード生成手段は、前記部分配列に対
して領域割り当てする個別出力コード生成手段と、前記
領域割り当て省略可能条件に基づいて、前記領域割り当
てを連結するメモリ割り付け連結コード生成手段と、を
含んでなることを特徴とする。
SUMMARY OF THE INVENTION Therefore, according to the present invention,
By compiling the Fortran language and omitting and concatenating the area allocation when combining the subarray actual argument in the source program with the dummy argument array, the subarray actual argument optimization device that generates the optimized source code can be used. A translation continuity judging unit for judging an omission condition of the region allocation of the partial sequence; and a code generating unit for generating an optimized code in which the region allocation of the partial sequence is linked. Comprises: an individual output code generating means for allocating an area to the partial array; and a memory allocation concatenated code generating means for concatenating the area allocation based on the area allocation omission condition. I do.

【0006】部分配列実引数最適化装置は、部分配列実
引数を仮引数配列と結合する際に、部分配列実引数が、
その親配列のメモリ領域で、連続して配置されているか
否かを判定し、その判定結果それぞれに応じた実行コー
ドを出力し、更に複数のメモリ割り付けを連結して一度
にまとめることにより、可能な限りメモリ領域の割り付
けと、それに対する値のコピーを省くことができる。
[0006] The partial array actual argument optimizing device, when combining the partial array actual argument with the dummy argument array,
This is possible by judging whether or not they are arranged consecutively in the memory area of the parent array, outputting an execution code corresponding to the judgment result, and linking a plurality of memory allocations to combine them at once. As far as possible, allocation of a memory area and copying of a value to the memory area can be omitted.

【0007】[0007]

【発明の実施の形態】この発明の実施の形態について、
図面を参照して説明する。この発明の最良の形態を示す
図1を参照すると、部分配列実引数最適化装置1は、翻
訳時連判別手段2と、出力コード生成手段3と、を備え
る。出力コード生成手段3は、翻訳時連続性判定手段2
の判定結果に基づいて、各部分配列実引数に対して領域
を割り当てる出力コードを生成する個別出力コード生成
手段31と、個別出力コード生成手段31の出力から、
割り当て領域を連結して、メモリ割り付け回数を削減し
た最適化コードを生成するメモリ割り付け連結コード生
成手段32と、を含む。この実施の形態で実行される方
法について、図2を参照して説明すると、ソースプログ
ラムを入力する段階200と、該ソースプログラムをコ
ンパイルして最適化するとき、領域割り当ての省略可能
条件による最適化可能性を判定する翻訳時連続性判定段
階201と、該判定の結果に従って、個別出力コードを
生成するコード生成段階202と、個別出力コードを連
結して最適化するメモリ割り付け連結コード生成段階2
03と、最適化コードを出力する段階204と、を含
み、部分配列実引数が、その親引数のメモリ領域中で、
連続して配置されているか否かの省略可能条件を判定
し、可能な限り割り当て領域を省略してメモリ割り付け
と値のコピーを削減する最適化を行う。
BEST MODE FOR CARRYING OUT THE INVENTION
This will be described with reference to the drawings. Referring to FIG. 1 showing the best mode of the present invention, a partial array actual argument optimizing device 1 includes a translation run determination unit 2 and an output code generation unit 3. The output code generation means 3 includes the translation continuity determination means 2
From the output of the individual output code generating means 31 for generating an output code for allocating an area to each partial array actual argument based on the determination result of
A memory allocation concatenated code generating means 32 for generating an optimized code in which the allocated areas are concatenated to reduce the number of memory allocations. The method performed in this embodiment will be described with reference to FIG. 2. Referring to FIG. 2, a step 200 of inputting a source program, and an optimization based on an omissible condition of area allocation when compiling and optimizing the source program A translation continuity determination step 201 for determining the possibility, a code generation step 202 for generating an individual output code according to the result of the determination, and a memory allocation connection code generation step 2 for connecting and optimizing the individual output codes
03, and outputting 204 the optimized code, wherein the subarray actual argument is stored in the memory area of its parent argument,
The omission condition for judging whether or not they are continuously arranged is determined, and the allocation area is omitted as much as possible, and optimization for reducing memory allocation and value copying is performed.

【0008】この方法で、部分配列が実引数として引用
される場合の動作は、まず、ソースプログラムをコンパ
イラの最適化装置1に入力する(段階200)。該装置
1の翻訳時連続性判定手段2によって、各引数の配列に
割り当てた領域に対して、連続性の判定をする(段階2
01)。該判定は、 (1) 静的に部分配列のメモリ領域が連続である。
In this method, when a partial array is referred to as an actual argument, first, a source program is input to the optimizing device 1 of the compiler (step 200). The translation continuity determining means 2 of the apparatus 1 determines continuity of the area assigned to each argument array (step 2).
01). The judgment is as follows: (1) The memory area of the partial array is statically continuous.

【0009】(2) 静的に部分配列のメモリ領域が不
連続である。
(2) The memory area of the partial array is statically discontinuous.

【0010】(3) 静的に部分配列のメモリ領域が連
続であるか、または不連続であるか判定できない。
(3) It is not possible to statically judge whether the memory area of the partial array is continuous or discontinuous.

【0011】の3つの場合に分類される。There are three cases.

【0012】以上の判定は、次元数dmy_rnk部分
配列A’が実引数になっている場合、その親配列Aの次
元数をact_rnkとし、配列Aの第i次元目の宣言
の下限と上限をそれぞれact_lb(i),act_
ub(i)とするとき、配列Aとそれの部分配列A’が
以下の条件を全て満たしているか否かによって、連続性
が決定される。
In the above determination, when the number of dimensions dmy_rnk partial array A ′ is an actual argument, the number of dimensions of the parent array A is act_rnk, and the lower and upper limits of the declaration of the i-th dimension of array A are respectively act_lb (i), act_
When ub (i) is set, continuity is determined by whether or not the sequence A and its partial sequence A ′ satisfy all of the following conditions.

【0013】配列Aの部分配列実引数A’の第i次元目
は、 (a) 1≦i<dmy_rnkなら、部分配列の添え
字指定により、選択される添え字がact_lb(i)
からact_ub(i)まで、1ずつ増加する。
The ith dimension of the subarray actual argument A ′ of the array A is as follows: (a) If 1 ≦ i <dmy_rnk, the subscript selected by the subscript specification of the subarray is act_lb (i)
To act_ub (i) by one.

【0014】部分列範囲参照がある場合、部分列の長さ
が各要素の大きさに等しい。
If there is a subsequence range reference, the length of the subsequence is equal to the size of each element.

【0015】(b) i=dmy_rnkなら、部分配
列の添え字指定により、選択される添え字が1ずつ増加
する。
(B) If i = dmy_rnk, the subscript to be selected is incremented by one according to the subscript designation of the partial array.

【0016】部分列範囲参照がある場合、i次元目の寸
法が1でない限り、部分列の長さが各要素の大きさに等
しい。
If there is a subsequence range reference, the length of the subsequence is equal to the size of each element, unless the dimension of the i-th dimension is 1.

【0017】(c) i>dmy_rnkなら、単一添
え字が指定されている。得られた部分配列引数の分類
は、出力コード生成手段3の入力となる。
(C) If i> dmy_rnk, a single subscript is specified. The obtained classification of the partial array argument is input to the output code generation means 3.

【0018】出力コード生成手段3においては、個別出
力コード生成手段31が翻訳時連続性判定手段2の判定
結果に基づいて、個別コードを生成する(段階20
2)。
In the output code generation means 3, the individual output code generation means 31 generates an individual code based on the determination result of the translation continuity determination means 2 (step 20).
2).

【0019】上述の分類によれば、 (1)静的に部分配列のメモリ領域が連続である場合、
部分配列の配列要素順序において、一番最初の要素のア
ドレスを計算し、そのアドレスから始まり、大きさが部
分配列の大きさに等しいメモリ領域を実引数として、対
応する仮引数と結合させる出力コードを生成する。
According to the above classification, (1) When the memory area of the partial array is statically continuous,
Output code that calculates the address of the first element in the array element order of the subarray, starts from that address, and combines the memory area with the size equal to the size of the subarray as the actual argument with the corresponding dummy argument Generate

【0020】(2)静的に部分配列のメモリ領域が不連
続である場合、従来通り、メモリ割り付けと値のコピー
を行った上、新しく割り付けた領域の先頭アドレスから
始まり、大きさが部分配列の大きさに等しいメモリ領域
を実引数として、対応する仮引数と結合させる出力コー
ドを生成する。
(2) When the memory area of the partial array is statically discontinuous, memory allocation and value copying are performed as before, and the size of the partial array starts from the start address of the newly allocated area. Generates an output code to combine a memory area equal to the size of the actual argument with the corresponding dummy argument.

【0021】(3)静的に部分配列のメモリ領域が連続
であるか、あるいは不連続であるかを判定できない場
合、実行時に、部分配列のメモリ領域が連続であるか否
かを判定する。連続ならば、部分配列の配列要素順序に
おいて、一番最初の要素のアドレスを計算し、そのアド
レスから始まり、大きさが部分配列の大きさに等しいメ
モリ領域を実引数として対応する仮引数と結合させる出
力コードを生成する。不連続ならば、従来通りメモリ割
り付けと値のコピーを行った上で、新しく割り付けた領
域の先頭アドレスから始まり、大きさが部分配列の大き
さに等しいメモリ領域を実引数として対応する仮引数と
結合させる出力コードを生成する。個別出力コード生成
手段31の出力コードは、メモリ割り付け連結コード生
成手段32への入力となる。メモリ割り付け連結コード
生成手段32は、個別出力コード生成手段31の出力コ
ードにおいて、複数のメモリ割り付けが生じる可能性が
ある場合、それをまとめて1つのメモリ割り付けに連結
したコードを生成する(段階203)。
(3) If it is not possible to statically determine whether the memory area of the partial array is continuous or discontinuous, it is determined at execution time whether the memory area of the partial array is continuous. If it is continuous, calculate the address of the first element in the array element order of the subarray, start from that address, and combine the memory area whose size is equal to the size of the subarray as the actual argument with the corresponding dummy argument Generate output code to be generated. If it is discontinuous, after allocating memory and copying the value as before, a memory area whose size is equal to the size of the partial array, starting from the start address of the newly allocated area, Generate output code to be combined. The output code of the individual output code generation means 31 is input to the memory allocation concatenated code generation means 32. If there is a possibility that a plurality of memory allocations may occur in the output code of the individual output code generation unit 31, the memory allocation connection code generation unit 32 generates a code in which the allocations are collectively connected to one memory allocation (step 203). ).

【0022】この部分配列実引数最適化の方法につい
て、実施例を図面を参照して説明する。この最適化の方
法は、図3のソースコード30で、全体の配列のREA
L A(100,100),B(100,100),C
(100,100)(行番301)に対して、SUB2
(A(1:100,5),B(X,8),C(5,1:
100)(行番302)の部分配列実引数をもつ手続き
呼び出しにおいて使用される。この方法の処理フローを
示す図2を参照して、図3,図4,図5を援用して説明
する。この方法は、ソースコード30が部分コンパイル
されるとする。従って、整数型配列Xの各要素の値は、
静的には不明である。翻訳時連続性判定手段2は、サブ
ルーチンSUB2(A(1:100,5),B(X,
8),C(5,1:100))(行番302)の引用に
おける各部分配列実引数に対して、以下の分類を行う
(段階201)。 (1) 部分配列実引数A(1:100,5)は、メモ
リ領域が連続である。 (2) 部分配列実引数B(X,8)は、メモリ領域が
連続か否かが静的には不明である。 (3) 部分配列実引数C(5,1:100)は、メモ
リ領域が不連続である。以上の分類によって、個別出力
コード生成手段31が、メモリ領域の連続性が静的に判
定不能な引数(この実施例ではB(X,8))に対す
る、実行時の判定結果(判定基準は、翻訳時と同じ)の
各場合に対して、不連続な部分配列の場合に対するメモ
リ割り付けと、実引数の値のコピーを挿入したコードを
出力する(段階202)。該コードをフォートラン言語
で記述した例を図4に示す。この個別出力コード40に
おける引数B(X,8)の各要素が、連続したメモリ領
域に配置されるか否かを実行時に判定し、不連続な場合
(行番401)、B(X,8)とC(5,1:100)
の各部分配列に対応して、一時領域TMP1、TMP2
の割り付けと(行番402,404)、その領域へのB
(X,8)とC(5,1:100)の値のコピーを行っ
て、TMP1,TMP2をそれぞれB(X,8)とC
(5,1:100)に対応する仮引数と結合させている
(行番408,409)。連続な場合(行番411)、
C(5,1:100)のみに対応して、一時領域TMP
1の割り付け(行番412)と、その領域へのC(5,
1:100)の値のコピーを行って、TMP1をC
(5,1:100)に対応する仮引数と結合させている
(行番416)。
An embodiment of the method for optimizing a partial array actual argument will be described with reference to the drawings. This optimization method is based on the source code 30 shown in FIG.
L A (100, 100), B (100, 100), C
For (100, 100) (line number 301), SUB2
(A (1: 100,5), B (X, 8), C (5: 1:
100) (line number 302) is used in a procedure call having a partial array actual argument. The method will be described with reference to FIG. 2 showing the processing flow of this method, with reference to FIGS. 3, 4, and 5. This method assumes that the source code 30 is partially compiled. Therefore, the value of each element of the integer type array X is
Statically unknown. The translation-time continuity determination unit 2 determines whether the subroutine SUB2 (A (1: 100,5), B (X,
8), C (5, 1: 100)) (line number 302), the following classification is performed on each subarray actual argument (step 201). (1) The partial array actual argument A (1: 100, 5) has a continuous memory area. (2) Regarding the partial array actual argument B (X, 8), it is statically unknown whether or not the memory area is continuous. (3) The partial array actual argument C (5, 1: 100) has a discontinuous memory area. According to the above classification, the individual output code generation unit 31 determines the execution result of the argument (B (X, 8) in this embodiment) for which the continuity of the memory area cannot be statically determined (the determination criterion is: (Same as at the time of translation), and outputs a code in which a memory is allocated for the case of a discontinuous partial array and a copy of the value of the actual argument is inserted (step 202). FIG. 4 shows an example in which the code is described in the Fortran language. At the time of execution, it is determined whether or not each element of the argument B (X, 8) in the individual output code 40 is arranged in a continuous memory area. If the element is discontinuous (line number 401), B (X, 8) ) And C (5: 1: 100)
Corresponding to the temporary regions TMP1, TMP2
(Line numbers 402 and 404) and B to that area
The values of (X, 8) and C (5,1: 100) are copied, and TMP1 and TMP2 are copied to B (X, 8) and C (
It is combined with the formal argument corresponding to (5, 1: 100) (line numbers 408, 409). If it is continuous (line number 411),
Temporary area TMP corresponding to only C (5: 1: 100)
1 (line number 412) and C (5,
1: 100) and copy TMP1 to C
It is combined with the dummy argument corresponding to (5, 1: 100) (line number 416).

【0023】更に、この個別出力コードを入力として、
メモリ割り付け連結コード生成手段32が複数のメモリ
割り付けを1つにまとめることにより、メモリ割り付け
回数を削減したコードを出力する(段階203)。この
個別出力コードを入力として、メモリ割り付け連結コー
ド生成手段32が、複数のメモリ割り付けを1つにまと
めることにより、メモリ割り付け回数を削減して最適化
したコードを出力する(段階203)。この最適化コー
ドをフォートラン言語で記述したものが図5に示す。こ
の最適化コード50において、2番目の引数B(X,
8)の各要素が、メモリ領域に不連続に配置されている
場合に生じる、B(X,8)とC(5,1:100)の
それぞれに対応した2回のメモリ割り付けを連結して
(行番402,404)、1回のメモリ割り付けに最適
化している(行番502)。
Further, using the individual output code as an input,
The memory allocation concatenated code generation unit 32 outputs a code in which the number of memory allocations is reduced by combining a plurality of memory allocations into one (step 203). With this individual output code as an input, the memory allocation concatenated code generation means 32 outputs a code optimized by reducing the number of memory allocations by combining a plurality of memory allocations into one (step 203). FIG. 5 shows the optimized code described in the Fortran language. In this optimized code 50, the second argument B (X,
8) The two memory allocations corresponding to B (X, 8) and C (5,1: 100), respectively, which occur when each element is arranged discontinuously in the memory area, are linked. (Line numbers 402 and 404) Optimized for one memory allocation (Line number 502).

【0024】[0024]

【発明の効果】第1の効果は、プログラムの実行時間が
短縮されることである。その理由は、部分配列実引数を
仮引数配列と結合する際に、メモリ領域の割り付け及び
値のコピーの発生が、可能な限り削減されるからであ
る。
The first effect is that the execution time of the program is reduced. The reason for this is that when combining a partial array actual argument with a dummy argument array, allocation of a memory area and occurrence of value copying are reduced as much as possible.

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

【図1】この発明の実施の形態を示す図である。FIG. 1 is a diagram showing an embodiment of the present invention.

【図2】この実施の形態における方法の実行を示すフロ
ーである。
FIG. 2 is a flowchart showing execution of a method according to the embodiment.

【図3】この実施例で最適化を説明するに用いるソース
コードである。
FIG. 3 is a source code used to explain optimization in this embodiment.

【図4】図1の個別出力コード生成手段が出力するコー
ドの例示である。
FIG. 4 is an example of a code output by an individual output code generation unit of FIG. 1;

【図5】図1のメモリ割り付け連結コード生成手段が出
力する最適化した連結コードの例示である。
FIG. 5 is an example of an optimized linked code output by the memory-allocated linked code generation unit of FIG. 1;

【図6】従来の出力コードの例示である。FIG. 6 is an example of a conventional output code.

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

1 部分配列実引数最適化装置 2 翻訳時連続性判定手段 3 出力コード生成手段 31 個別出力コード生成手段 32 メモリ割り付け連結コード生成手段 DESCRIPTION OF SYMBOLS 1 Subarray actual argument optimization device 2 Translation continuity judgment means 3 Output code generation means 31 Individual output code generation means 32 Memory allocation concatenated code generation means

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 フォートラン言語をコンパイルし、ソー
スプログラム中の部分配列実引数を仮引数配列と結合す
る際の領域割り当てを省略及び連結させることにより、
最適化したソースコードを生成する部分配列実引数最適
化装置にあって、 前記部分配列の領域割り当て省略可能条件を判定する翻
訳時連続性判定手段と、 前記部分配列の領域割り当てを連結した最適化コードを
生成するコード生成手段と、 を備え、 前記コード生成手段は、 前記部分配列に対して領域割り当てする個別出力コード
生成手段と、 前記領域割り当て省略可能条件に基づいて、前記領域割
り当てを連結するメモリ割り付け連結コード生成手段
と、 を含む、 ことを特徴とする部分配列実引数最適化装置。
1. Compiling a Fortran language and omitting and concatenating an area allocation when combining a subarray actual argument in a source program with a dummy argument array,
In a partial array actual argument optimizing apparatus for generating optimized source code, an optimizing unit that connects a translation continuity determining unit that determines an area allocation omission condition of the partial array and an area allocation of the partial array Code generating means for generating a code, wherein the code generating means links the individual output code generating means for allocating an area to the partial array, and the area allocation based on the area allocation omitting condition. And a memory allocation concatenated code generating means.
【請求項2】 フォートラン言語をコンパイルし、ソー
スプログラム中の部分配列実引数を仮引数配列と結合す
る際の領域割り当てを省略及び連結させることにより、
最適化したソースコードを生成する部分配列実引数最適
化の方法にあって、 ソースプログラムを入力する段階と、 前記ソースプログラムをコンパイルするとき、部分配列
実引数の領域割り当ての連続性による領域割り当て省略
可能条件を判定する翻訳時連続性判定段階と、 前記部分配列実引数のそれぞれに領域割り当てるコード
生成段階と、 前記判定に基づいて、前記部分配列の割り当て領域を連
結するメモリ割り付け連結コード生成段階と、 部分配列実引数の割り当て領域を連結した最適化コード
を出力する段階と、 を含む、 ことを特徴とする部分配列実引数の最適化方法。
2. Compiling a Fortran language and omitting and concatenating an area allocation when combining a partial array actual argument in a source program with a dummy argument array,
In the method of optimizing a partial array actual argument for generating an optimized source code, a step of inputting a source program and, when compiling the source program, omitting an area allocation due to continuity of an area allocation of the partial array actual argument A translation continuity determination step of determining a possible condition; a code generation step of allocating an area to each of the partial array actual arguments; and a memory allocation connection code generation step of connecting the allocation areas of the partial array based on the determination. And outputting an optimization code in which the allocation regions of the subarray actual arguments are connected. A method for optimizing a subarray actual argument.
【請求項3】 前記最適化方法の各段階を実行する、コ
ンピュータ読み取り可能なプログラムを記録する記憶媒
体。
3. A storage medium for recording a computer-readable program for executing each step of the optimization method.
JP35314597A 1997-12-22 1997-12-22 Device and method for optimizing real argument of partial arrangement Pending JPH11184710A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP35314597A JPH11184710A (en) 1997-12-22 1997-12-22 Device and method for optimizing real argument of partial arrangement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35314597A JPH11184710A (en) 1997-12-22 1997-12-22 Device and method for optimizing real argument of partial arrangement

Publications (1)

Publication Number Publication Date
JPH11184710A true JPH11184710A (en) 1999-07-09

Family

ID=18428871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35314597A Pending JPH11184710A (en) 1997-12-22 1997-12-22 Device and method for optimizing real argument of partial arrangement

Country Status (1)

Country Link
JP (1) JPH11184710A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250683A (en) * 2009-04-17 2010-11-04 Nec Corp Compiling device, compiling method and program thereof
US9880612B2 (en) 2014-03-27 2018-01-30 Fujitsu Limited Execution control method and execution control apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250683A (en) * 2009-04-17 2010-11-04 Nec Corp Compiling device, compiling method and program thereof
US9880612B2 (en) 2014-03-27 2018-01-30 Fujitsu Limited Execution control method and execution control apparatus

Similar Documents

Publication Publication Date Title
US6253371B1 (en) Method for supporting parallelization of source program
Biham et al. Collisions of SHA-0 and Reduced SHA-1
US20040098713A1 (en) Compiler apparatus with flexible optimization
US6571385B1 (en) Early exit transformations for software pipelining
Berson et al. URSA: A Unified ReSource Allocator for Registers and Functional Units in VLIW Architectures.
US4843545A (en) Compile method using copy propagation of a variable
JPH08185325A (en) Code generation method in compiler and compiler
JP3539613B2 (en) Array summary analysis method for loops containing loop jump statements
JPH11184710A (en) Device and method for optimizing real argument of partial arrangement
JPH103391A (en) Method and system for assigning register using multiplex interference graph
US20080307177A1 (en) Program conversion device
Blythe et al. Toward a practical methodology for completely characterizing the optimal design space
JP4719415B2 (en) Information processing system and code generation method
JP3028821B2 (en) Parallel compilation method
JP2009301453A (en) Distributed memory type multiprocessor system, masked reverse shift communication method and program
JP2715985B2 (en) Multiple loop optimization method
JP3551352B2 (en) Loop splitting method
JP4298868B2 (en) Pair register allocation processing method, compile processing device, and compiler program recording medium
JPH08255086A (en) Object code generation system
JP2003256214A (en) Loop conversion method by array expansion
JPH10333915A (en) Optimizing processing system for procedure reference
Roth Advanced scalarization of array syntax
JPS62169272A (en) Vector operation sequence loop unrolling processing method
WO2020116025A1 (en) Compile device, compile method, and non-transitory computer-readable medium
Lakshmi et al. Integrating a new cluster assignment and scheduling algorithm into an experimental retargetable code generation framework

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010710