JPH11184710A - Device and method for optimizing real argument of partial arrangement - Google Patents
Device and method for optimizing real argument of partial arrangementInfo
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【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.
【図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.
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)
スプログラム中の部分配列実引数を仮引数配列と結合す
る際の領域割り当てを省略及び連結させることにより、
最適化したソースコードを生成する部分配列実引数最適
化装置にあって、 前記部分配列の領域割り当て省略可能条件を判定する翻
訳時連続性判定手段と、 前記部分配列の領域割り当てを連結した最適化コードを
生成するコード生成手段と、 を備え、 前記コード生成手段は、 前記部分配列に対して領域割り当てする個別出力コード
生成手段と、 前記領域割り当て省略可能条件に基づいて、前記領域割
り当てを連結するメモリ割り付け連結コード生成手段
と、 を含む、 ことを特徴とする部分配列実引数最適化装置。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. 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. A storage medium for recording a computer-readable program for executing each step of the optimization method.
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)
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 |
-
1997
- 1997-12-22 JP JP35314597A patent/JPH11184710A/en active Pending
Cited By (2)
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 |