JP2000347870A - Method for linearizing nonlinear index expression based on value profile - Google Patents

Method for linearizing nonlinear index expression based on value profile

Info

Publication number
JP2000347870A
JP2000347870A JP11154774A JP15477499A JP2000347870A JP 2000347870 A JP2000347870 A JP 2000347870A JP 11154774 A JP11154774 A JP 11154774A JP 15477499 A JP15477499 A JP 15477499A JP 2000347870 A JP2000347870 A JP 2000347870A
Authority
JP
Japan
Prior art keywords
loop
program
linear
source program
value profile
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
JP11154774A
Other languages
Japanese (ja)
Inventor
Takayoshi Iizuka
孝好 飯塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Real World Computing Partnership
Original Assignee
Hitachi Ltd
Real World Computing Partnership
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Real World Computing Partnership filed Critical Hitachi Ltd
Priority to JP11154774A priority Critical patent/JP2000347870A/en
Publication of JP2000347870A publication Critical patent/JP2000347870A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PROBLEM TO BE SOLVED: To improve the applicability of the optimization of a loop including an array reference having a nonlinear index expression. SOLUTION: By this linearizing method, a language processing system 20 adds a value profile acquisition code of a variable as a nonlinear coefficient in some nonlinear index expression in some array having values set in a loop of a source program 10 to the source program 10, finds a nonlinear coefficient value profile 60 obtained by executing an object program generated from the source program, and uses the profile to linearlize the nonlinear index expression in the loop of the source program 10.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータプロ
グラムの言語処理系(Language Processor)の技術に係
り、特に、ループ内の配列の添え字式が非線形の場合で
の最適化を効率的に行なうのに好適な値プロファイルに
基づいた非線形添え字式線形化方法に関するものであ
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to the technology of a language processing system (Language Processor) for a computer program, and more particularly to efficient optimization in a case where a subscript expression of an array in a loop is nonlinear. And a non-linear subscript type linearization method based on a value profile suitable for.

【0002】[0002]

【従来の技術】言語処理系では、コンパイル時、プログ
ラムの実行性能を向上するために種々の最適化を行な
う。それぞれの最適化は無条件に適用できるわけではな
く、例えばループ並列化やループ不変式移動など多くの
最適化は、プログラム内の配列参照点間での依存関係に
よって阻害される。
2. Description of the Related Art In a language processing system, at the time of compilation, various optimizations are performed in order to improve the execution performance of a program. Each optimization cannot be applied unconditionally, and many optimizations such as loop parallelization and loop invariant movement are hindered by dependencies between array reference points in the program.

【0003】依存関係は「William Pugh, A Practical
Algorithm for Exact Array Dependence Analysis, CAC
M Vol.35, No.8, pp.102-114, ACM, August 1992」に示
されているように、ループ内の配列の添え字式がループ
制御変数についての線形式、即ち、ループ制御変数の定
数倍した項の和に定数を加えた式で表現できるなら厳密
な解析が可能である。
[0003] The dependency is described in "William Pugh, A Practical
Algorithm for Exact Array Dependence Analysis, CAC
M Vol.35, No.8, pp.102-114, ACM, August 1992 ”, the subscript expression of the array in the loop is a linear expression for the loop control variable, that is, the loop control variable. Strict analysis is possible if it can be expressed by an expression obtained by adding a constant to the sum of terms multiplied by a constant.

【0004】また、ループ制御変数の定数倍で表現でき
ない項に対しても、その項がループ不変式ならば、依存
関係が存在するための条件をそのループ不変式の値につ
いての条件で表現することが可能である。
If a term that cannot be expressed by a constant times the loop control variable is a loop invariant, a condition for having a dependency is expressed by a condition on the value of the loop invariant. It is possible.

【0005】この条件の真偽に従って、最適化していな
いコードか最適化したコードの何れかを実行するコード
をコンパイラが生成することにより、この条件が成立し
ない場合に最適化コードが実行され、実行性能が向上す
る。このようなプログラム変換は2バージョン化と呼ば
れる。
According to the truth or false of this condition, the compiler generates a code for executing either unoptimized code or optimized code. If this condition is not satisfied, the optimized code is executed. Performance is improved. Such program conversion is called two-versioning.

【0006】以下、図12〜図14を用いて、このよう
な従来技術について説明する。図12は、従来のコンパ
イルの対象となるソースプログラム例を示す説明図であ
り、図13は、図12におけるソースプログラムでの依
存方程式例を示す説明図、図14は、図12におけるソ
ースプログラムを最適化して得られる目的プログラム例
を示す説明図である。
Hereinafter, such a conventional technique will be described with reference to FIGS. FIG. 12 is an explanatory diagram showing an example of a source program to be compiled conventionally, FIG. 13 is an explanatory diagram showing an example of a dependency equation in the source program in FIG. 12, and FIG. FIG. 9 is an explanatory diagram showing an example of a target program obtained by optimization.

【0007】従来技術では配列参照点間で依存関係が生
じるための条件を依存方程式で表現する。依存方程式に
解が存在する場合には依存関係が存在し、解が存在しな
い場合には依存関係も存在しない。図12に示すソース
プログラムにおけるループ内の配列参照点間の依存関係
に対する依存方程式のうち、真偽が定まらないものは1
つだけであり、図13のようになる。
In the prior art, a condition for generating a dependency between array reference points is represented by a dependency equation. If there is a solution in the dependency equation, there is a dependency, and if there is no solution, there is no dependency. Among the dependence equations for the dependence between the array reference points in the loop in the source program shown in FIG.
Only one, as shown in FIG.

【0008】図13に示す方程式で「I1」と「I2」
は、図12の2行目における「A(I)」と「A(I+M)」
のそれぞれが参照される時点でのループ制御変数Iの値
を表す。これらの方程式から、ループ不変式である変数
M以外の変数を例えばMotzkin変数消却法等で消去する
と、「-99<=M<=99」という条件が求まる。この条件が真
の場合にのみ依存関係が生じる。
In the equation shown in FIG. 13, "I1" and "I2"
Are "A (I)" and "A (I + M)" in the second line of FIG.
Represents the value of the loop control variable I at the time when each is referred to. From these equations, when variables other than the variable M, which is a loop invariant, are eliminated by, for example, the Motzkin variable elimination method, the condition “−99 <= M <= 99” is obtained. Dependencies only occur if this condition is true.

【0009】ループ内の配列参照点間で依存関係が無い
場合にはループを並列化することが可能なので、2バー
ジョン化により、図14に示すような目的プログラムを
生成することができる。これにより、「-99<=M<=99」と
いう条件が成立しない場合には、図14における行6か
ら行8の並列化したループが実行されるので、実行性能
が向上する。ただし、DOALLで始まるループは並列ルー
プを表現することとし、また、言語処理系はプリプロセ
ッサであり、目的プログラムもソースプログラムと同様
の形式で表現されるものとする。
If there is no dependency between the array reference points in the loop, the loop can be parallelized, so that the target program as shown in FIG. 14 can be generated by the two versions. Accordingly, when the condition of “−99 <= M <= 99” is not satisfied, the parallelized loop of rows 6 to 8 in FIG. 14 is executed, and the execution performance is improved. However, the loop starting with DOALL represents a parallel loop, the language processing system is a preprocessor, and the target program is represented in the same format as the source program.

【0010】しかし、このような従来の技術では、配列
の添え字式が「非線形」の場合には依存関係を計算でき
ず、また、2バージョン化のための条件すら求められな
い。例えば、図6に示す本発明の処理対象となるソース
プログラム中の2つの配列参照「A(I*IX1)」と「A(I*IX
2+M)」の間での依存関係を判定する依存方程式は図7に
示すようになる。
However, in such a conventional technique, when the subscript expression of the array is "non-linear", the dependency cannot be calculated, and even the condition for two versions cannot be obtained. For example, two array references “A (I * IX1)” and “A (I * IX1)” in the source program to be processed according to the present invention shown in FIG.
2 + M) ”is as shown in FIG.

【0011】図7において、1番目の式「I1*IX1=I2*IX
2+M」は、ループ制御変数の値「I1」、「I2」に対する
係数が定数ではなく変数「IX1」、「IX2」なので非線形
である。以下では、ループ制御変数の係数が定数以外の
場合、その係数を非線形係数と呼ぶことにする。
In FIG. 7, the first expression “I1 * IX1 = I2 * IX
“2 + M” is nonlinear because the coefficients for the loop control variable values “I1” and “I2” are not constants but variables “IX1” and “IX2”. Hereinafter, when the coefficient of the loop control variable is other than a constant, the coefficient is referred to as a non-linear coefficient.

【0012】上記従来技術では非線形式は扱えないの
で、図7に示す依存方程式からは依存関係は計算できな
い。また、2バージョン化のための条件の計算も依存方
程式が線形の場合しか扱えないので、2バージョン化も
実施できない。
Since the above-mentioned prior art cannot handle a non-linear equation, the dependence cannot be calculated from the dependence equation shown in FIG. Further, since the calculation of the condition for the two versions can be handled only when the dependent equation is linear, the two versions cannot be implemented.

【0013】[0013]

【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、配列の添え字式が非線形の場合
には、依存関係を計算できず、また、2バージョン化の
ための条件すら求めることができない点である。
The problem to be solved is that in the prior art, when the subscript expression of the array is non-linear, the dependency cannot be calculated, and the condition for the two versions is not obtained. It is not even possible to ask for it.

【0014】本発明の目的は、これら従来技術の課題を
解決し、非線形添え字式を持つ配列参照を含むループに
対する最適化の適用性を向上させることが可能な値プロ
ファイルに基づいた非線形添え字式線形化方法を提供す
ることである。
An object of the present invention is to solve the problems of the prior art and to improve the applicability of optimization to a loop including an array reference having a non-linear subscript expression. The purpose of the present invention is to provide an equation linearization method.

【0015】[0015]

【課題を解決するための手段】上記目的を達成するた
め、本発明の値プロファイルに基づいた非線形添え字式
線形化方法は、ループ中の配列参照の非線形添え字中で
ループ制御変数の非線形係数となる変数の値の実行時履
歴(値プロファイル)を取得し、例えば最も頻度が多い
値でその変数を置換することにより添え字を線形化す
る。
To achieve the above object, the present invention provides a method for linearizing a non-linear index based on a value profile, comprising the steps of: The execution time history (value profile) of the value of the variable is obtained, and the subscript is linearized by replacing the variable with, for example, the most frequent value.

【0016】すなわち、まず、ループ内で値が設定され
ることによりループ内の参照点間で依存関係を生じる可
能性がある何れかの配列の、何れかの非線形添え字式内
でループ制御変数の非線形係数となる変数について、そ
の変数が取り得る値のプロファイルを実行時に取得する
ためのコード(命令文)を、最適化対象のソースプログ
ラムにおけるループの前に付加する。
That is, first, the loop control variable is set in any of the non-linear subscript expressions in any of the arrays in which a value may be set in the loop to cause a dependency between reference points in the loop. Is added before execution of a loop in a source program to be optimized, for acquiring a profile of a value that the variable can take at the time of execution for a variable that becomes a non-linear coefficient.

【0017】次に、このコードを付加したソースプログ
ラムから目的プログラムを生成して、この目的プログラ
ムを実行することによって非線形係数の実際の値のプロ
ファイルを取得する。そして、取得した実際の値でルー
プ内の非線形係数を置き換えることにより、添え字式を
線形化する。
Next, a target program is generated from the source program to which the code is added, and the profile of the actual value of the nonlinear coefficient is obtained by executing the target program. Then, the subscript expression is linearized by replacing the nonlinear coefficient in the loop with the obtained actual value.

【0018】このことにより、依存関係解析技術の適用
が可能となり、非線形添え字式を持つ配列参照を含むル
ープに対する添え字式の線形化ができ、依存関係の解析
精度向上や2バージョン化適用が可能となり、最適化の
適用性が向上する。
As a result, the dependency analysis technique can be applied, the subscript expression can be linearized for a loop including an array reference having a non-linear subscript expression, and the dependency analysis accuracy can be improved and two-version application can be performed. Possible and the applicability of the optimization is improved.

【0019】[0019]

【発明の実施の形態】以下、本発明の実施の形態を、図
面により詳細に説明する。図1は、本発明の値プロファ
イルに基づいた非線形添え字式線形化方法の処理手順を
実行する機能構成の一例を示すブロック図であり、図2
は、図1におけるシステムのハードウエア構成を示すブ
ロック図である。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a block diagram showing an example of a functional configuration for executing a processing procedure of a nonlinear subscript linearization method based on a value profile according to the present invention.
FIG. 2 is a block diagram showing a hardware configuration of the system in FIG.

【0020】図2において、1はCRT(Cathode Ray
Tube)等からなり文字や画像を表示出力する表示装置、
1はキーボードやマウス等からなり操作者からの指示を
入力する入力装置、3はHDD(Hard Disk Drive)等
からなり大容量のデータやプログラムを記憶する外部記
憶装置、4はCPU(Central Processing Unit)や主
メモリを有して蓄積プログラム方式によるコンピュータ
処理を行なう情報処理装置、5は本発明の処理手順に係
るプログラムやデータを記録した記録媒体としての光デ
ィスク、6は情報処理装置4からの指示に基づき外部記
憶装置3に記憶させる光ディスク5内のデータやプログ
ラムを読み出す駆動装置である。
In FIG. 2, reference numeral 1 denotes a CRT (Cathode Ray).
Display device that displays and outputs characters and images,
Reference numeral 1 denotes an input device which is composed of a keyboard and a mouse for inputting instructions from an operator, 3 is an external storage device which is composed of an HDD (Hard Disk Drive) or the like and stores a large amount of data and programs, and 4 is a CPU (Central Processing Unit). ) And an information processing apparatus having a main memory and performing computer processing by a storage program method, 5 is an optical disk as a recording medium on which programs and data according to the processing procedure of the present invention are recorded, and 6 is an instruction from the information processing apparatus Is a driving device that reads out data and programs in the optical disk 5 to be stored in the external storage device 3 based on.

【0021】情報処理装置4は、外部記憶装置3に記憶
した光ディスク5からのデータやプログラムを主メモリ
にロードすることにより、図1に示す各処理部からなる
言語処理系を構成する。図1において、10は最適化の
処理対象となるソースプログラムであり図6に示すルー
プを含み、20は本発明に係る処理を行なう言語処理系
である。
The information processing device 4 constitutes a language processing system comprising the respective processing units shown in FIG. 1 by loading data and programs from the optical disk 5 stored in the external storage device 3 into the main memory. In FIG. 1, reference numeral 10 denotes a source program to be optimized, which includes a loop shown in FIG. 6, and reference numeral 20 denotes a language processing system that performs processing according to the present invention.

【0022】言語処理系20は、非線形係数値プロファ
イル取得コード付加処理部30と、目的プログラム生成
処理部40、非線形添え字式線形化処理部70、最適化
処理部90からなり、ソースプログラム10のみを入力
した場合には、非線形係数値プロファイル取得用目的プ
ログラム50を出力する。
The language processing system 20 comprises a non-linear coefficient value profile acquisition code addition processing section 30, a target program generation processing section 40, a non-linear subscript type linearization processing section 70, and an optimization processing section 90. Is input, the non-linear coefficient value profile acquisition purpose program 50 is output.

【0023】これを実行処理部55で実行することによ
り、非線形係数値プロファイル60が得られる。この非
線形係数値プロファイル60とソースプログラム10の
両方を入力した場合には、言語処理系20は、非線形添
え字の線形化および最適化を行なった後、最終的な目的
プログラム95を出力する。
By executing this in the execution processing unit 55, a nonlinear coefficient value profile 60 is obtained. When both the nonlinear coefficient value profile 60 and the source program 10 are input, the language processing system 20 outputs the final target program 95 after linearizing and optimizing the nonlinear suffix.

【0024】尚、ソースプログラム10は、「Fortra
n」や「C」などのプログラミング言語で記述されたプ
ログラムであり、非線形係数値プロファイル取得用目的
プログラム50および目的プログラム95は、コンパイ
ラでは機械語命令であり、プリプロセッサでは「Fortra
n」や「C」などのプログラミング言語である。
Note that the source program 10 has a "Fortra
n ”and“ C ”, the target program 50 and the target program 95 for acquiring a nonlinear coefficient value profile are machine instructions in a compiler, and“ Fortra ”in a preprocessor.
A programming language such as "n" or "C".

【0025】以下、ソースプログラム10が「Fortra
n」で記述されたプログラムであり、非線形係数値プロ
ファイル取得用目的プログラム50および目的プログラ
ム95が「Fortran」で記述されたプログラムであり、
言語処理系20がプリプロセッサの場合について、言語
処理係20の動作を説明する。尚、言語処理系20を構
成する各処理部の内、非線形係数値プロファイル取得コ
ード付加処理部30と非線形添え字式線形化処理部70
が本発明に係る処理を行なうもので、他の処理部は、公
知の技術である。
Hereinafter, the source program 10 is called "Fortra
n ", and the objective program 50 and the objective program 95 for obtaining a nonlinear coefficient value profile are programs described in" Fortran ",
The operation of the language processor 20 when the language processor 20 is a preprocessor will be described. It should be noted that, among the processing units constituting the language processing system 20, the non-linear coefficient value profile acquisition code addition processing unit 30 and the non-linear subscript type linearization processing unit 70
Performs the processing according to the present invention, and the other processing units are known technologies.

【0026】非線形係数値プロファイル取得コード付加
処理部30は、ソースプログラム10を入力して、ソー
スプログラム10中のループ内で値が設定されることに
よりループ内の参照点間で依存関係を生じる可能性があ
る何れかの配列の、何れかの非線形添え字式内でループ
制御変数の非線形係数となる変数について、その値のプ
ロファイルを実行時に取得するためのコード(命令文)
をソースプログラム10に付加する。尚、この非線形係
数値プロファイル取得コード付加処理部30の処理の詳
細は図4で後述する。
The non-linear coefficient value profile acquisition code addition processing unit 30 may input the source program 10 and generate a dependency between reference points in the loop by setting values in the loop in the source program 10. Code for acquiring a profile of the value of a variable that becomes a non-linear coefficient of a loop control variable in any of the non-linear subscript expressions of any of the arrays having a possibility at the time of execution
Is added to the source program 10. The details of the processing of the non-linear coefficient value profile acquisition code addition processing section 30 will be described later with reference to FIG.

【0027】目的プログラム生成処理部40は、非線形
係数値プロファイル取得コード付加処理部30から出力
されるプログラムに対する目的プログラム生成を行う。
これにより、非線形係数値プロファイル用取得用目的プ
ログラム50が生成される。
The target program generation processing section 40 generates a target program for the program output from the nonlinear coefficient value profile acquisition code addition processing section 30.
As a result, the non-linear coefficient value profile acquisition purpose program 50 is generated.

【0028】この非線形係数値プロファイル取得用目的
プログラム50は、実行処理部55で実際に実行され、
非線形係数値プロファイル取得コード付加処理部30で
付加された命令コードにより得られた非線形係数の実際
の値が非線形係数値プロファイル60として取得され
る。
The non-linear coefficient value profile acquisition purpose program 50 is actually executed by the execution processing unit 55,
The actual value of the nonlinear coefficient obtained by the instruction code added by the nonlinear coefficient value profile acquisition code addition processing unit 30 is acquired as the nonlinear coefficient value profile 60.

【0029】図3は、図1における非線形係数プロファ
イルの内容例を示す説明図である。基本的に、本例での
線形化方法においては、ループ内で非線形係数となる変
数の値についての統計情報が得られれば十分であるが、
図1に示す本例の言語処理系20では、ループ内で非線
形係数となる変数の値を、このループの直前で全て出力
するようにしている。
FIG. 3 is an explanatory diagram showing an example of the content of the nonlinear coefficient profile in FIG. Basically, in the linearization method in this example, it is sufficient to obtain statistical information on the value of a variable that becomes a nonlinear coefficient in the loop,
In the language processing system 20 of the present example shown in FIG. 1, all values of variables that become nonlinear coefficients in the loop are output immediately before this loop.

【0030】種々の統計情報は、非線形係数プロファイ
ル60から全て得ることができる。尚、非線形係数とな
る変数の値プロファイルを取得するオーバーヘッドを削
減するには、必要な統計情報のみを計算してプログラム
の終了時に出力するという処理手順も考えらる。
Various statistical information can all be obtained from the nonlinear coefficient profile 60. In order to reduce the overhead of acquiring a value profile of a variable serving as a nonlinear coefficient, a processing procedure in which only necessary statistical information is calculated and output at the end of the program may be considered.

【0031】図1において、非線形添え字式線形化処理
部70は、非線形係数値プロファイル60とソースプロ
グラム10を入力し、非線形係数値プロファイル60に
基づいてソースプログラム10中のループ内の非線形係
数を実行時に定まった実際の値で置き換えることにより
非線形添え字式を線形化する。尚、この非線形添え字式
線形化処理部70の処理の詳細は図5で後述する。
In FIG. 1, a non-linear subscript type linearization processing unit 70 receives a non-linear coefficient value profile 60 and a source program 10, and based on the non-linear coefficient value profile 60, calculates a non-linear coefficient in a loop in the source program 10. Linearize the non-linear subscript expression by replacing it with the actual value determined at runtime. The details of the processing performed by the nonlinear subscript-type linearization processing unit 70 will be described later with reference to FIG.

【0032】最適化処理部90は、非線形添え字式線形
化処理部70からの出力プログラムに対して、並列化や
ループ不変式移動などの最適化を行なう。ここでは、非
線形添え字式線形化処理部70で線形化された添え字式
を含むループに対しても、従来技術である依存解析およ
び2バージョン化を適用して、ソースプログラム10の
最適化を行なうことができるので、従来よりも最適化の
適用性が向上している。
The optimization processing unit 90 performs optimization such as parallelization and loop invariant movement on the output program from the non-linear subscript type linearization processing unit 70. Here, the dependency analysis and the two-versioning, which are conventional techniques, are applied to the loop including the subscript expression linearized by the nonlinear subscript expression linearization processing unit 70 to optimize the source program 10. Since it can be performed, the applicability of the optimization is improved as compared with the related art.

【0033】そして、目的プログラム生成処理部40
は、最適化処理部90で最適化されたプログラムに対し
て目的プログラム生成を行い、目的プログラム95を生
成する。このように、ソースプログラム10に含まれて
いた非線形添え字が線形化され、従来の依存解析および
2バージョン化が適用可能となるので、従来よりも最適
化の適用性が向上し、目的プログラム95の性能が向上
する。
Then, the target program generation processing unit 40
Generates a target program for the program optimized by the optimization processing unit 90, and generates a target program 95. As described above, the nonlinear suffix included in the source program 10 is linearized, and the conventional dependency analysis and two-versioning can be applied. Therefore, the applicability of the optimization is improved more than before, and the objective program 95 Performance is improved.

【0034】次に、図4を用いて非線形係数値プロファ
イル取得コード付加処理部30の処理の詳細を、また図
5を用いて非線形添え字式線形化処理部70の処理の詳
細を説明する。図4は、図1における非線形係数値プロ
ファイル取得コード付加処理部の処理動作例を示すすフ
ローチャートである。
Next, the details of the processing of the nonlinear coefficient value profile acquisition code addition processing section 30 will be described with reference to FIG. 4, and the details of the processing of the nonlinear subscript type linearization processing section 70 will be described with reference to FIG. FIG. 4 is a flowchart showing an example of the processing operation of the nonlinear coefficient value profile acquisition code addition processing section in FIG.

【0035】ステップ31では、入力した図1のソース
プログラム10中の先頭ループをLとする。ソースプロ
グラム10中にループが無い場合は、Lが空になるもの
とする。ステップ32では、Lが空か判定し、これが真
(TRUE)の場合は処理を終了し、偽(FALSE)の場合は
ステップ35に進む。ステップ35では、ループL内で
値が設定される何れかの配列の何れかの非線形添え字式
で非線形係数となる変数の集合NLVを求める。
In step 31, the leading loop in the input source program 10 of FIG. 1 is set to L. If there is no loop in the source program 10, L is assumed to be empty. In step 32, it is determined whether or not L is empty. If this is true (TRUE), the process ends, and if false (FALSE), the process proceeds to step 35. In step 35, a set NLV of variables that become non-linear coefficients by any non-linear subscript expression in any of the arrays whose values are set in the loop L is obtained.

【0036】ステップ36では、ループLの先頭の行番
号と、NLV中の各変数の変数名と値を書き出すWRITE文を
ループLの直前に挿入する。WRITE文の出力形式は、図
3で示された非線形係数値プロファイル60に合わせる
ものとする。ステップ37では、ループLの次のループ
を新たにLに設定する。ただし、ソースプログラム10
中にループLの次のループが無い場合は、Lが空になる
ものとする。
In step 36, a WRITE statement for writing the line number at the head of the loop L and the variable name and value of each variable in the NLV is inserted immediately before the loop L. It is assumed that the output format of the WRITE statement conforms to the nonlinear coefficient value profile 60 shown in FIG. In step 37, the loop following the loop L is newly set to L. However, the source program 10
If there is no loop next to the loop L, L is assumed to be empty.

【0037】以上の処理により、図1における非線形係
数値プロファイル取得コード付加処理部30では、ソー
スプログラム10中の全てのループに対して、ループ内
で値が設定されることによりループ内の参照点間で依存
関係を生じる可能性がある何れかの配列の、何れかの非
線形添え字式内でループ制御変数の非線形係数となる変
数について、図3で示される形式の非線形係数値プロフ
ァイル60を出力するコードがループの直前に付加され
る。
With the above processing, the nonlinear coefficient value profile acquisition code addition processing unit 30 in FIG. 1 sets the values in all the loops in the source program 10 in the loops, thereby setting the reference points in the loops. A non-linear coefficient value profile 60 in the form shown in FIG. 3 is output for a variable that becomes a non-linear coefficient of a loop control variable in any of the non-linear subscript expressions in any of the arrays that may cause a dependency between the two. Is added immediately before the loop.

【0038】図5は、図1における非線形添え字式線形
化処理部の処理動作例を示すすフローチャートである。
ステップ71では、入力した図1のソースプログラム1
0中の先頭ループをLとする。ソースプログラム10中
にループが無い場合は、Lが空になるものとする。ステ
ップ72では、Lが空か判定し、これが真の場合は処理
を終了し、偽の場合はステップ73に進む。
FIG. 5 is a flowchart showing an example of the processing operation of the non-linear subscript type linearization processing section in FIG.
In step 71, the input source program 1 of FIG.
Let L be the first loop in 0. If there is no loop in the source program 10, L is assumed to be empty. In step 72, it is determined whether L is empty. If this is true, the process ends. If false, the process proceeds to step 73.

【0039】ステップ73では、ループLの先頭行番号
をキーとして図1の非線形係数値プロファイル60中で
のループLについての情報を集計し、一番頻度が多い変
数値の組み合わせNLVALを求める。ステップ74では、N
LVALで示される変数値の組み合わせを条件とするIF文を
作成し、THEN側にはL内の変数の値をNLVALで示される
変数値で置き換えることにより非線形添え字式を線形化
したループを作成し、ELSE側にはループLのコピーを作
成し、ループLをここで作成したIF文で置き換える。
In step 73, the information on the loop L in the nonlinear coefficient value profile 60 of FIG. 1 is totaled using the first line number of the loop L as a key, and the combination NLVAL of the most frequent variable values is obtained. In step 74, N
Create an IF statement that is conditional on the combination of the variable values indicated by LVAL, and create a loop on the THEN side that replaces the value of the variable in L with the variable value indicated by NLVAL to linearize the nonlinear subscript expression. Then, a copy of the loop L is created on the ELSE side, and the loop L is replaced with the IF statement created here.

【0040】ステップ75では、ループLの次のループ
を新たにLに設定する。ただし、ソースプログラム10
中にループLの次のループが無い場合は、Lが空になる
ものとする。以上の処理により、図1における非線形添
え字式線形化処理部70では、ソースプログラム10中
の全てのループに対して、非線形係数となる変数の値が
最頻の組み合わせと一致するときに非線形添え字式が線
形化されたループが実行されるという2バージョン化が
行われる。このようにして非線形化添え字式が線形化さ
れたループでは、従来技術に基づいて依存解析および2
バージョン化が実施可能となるので、最適化の適用性が
向上する。
In step 75, the loop following the loop L is newly set to L. However, the source program 10
If there is no loop next to the loop L, L is assumed to be empty. By the above processing, the non-linear subscripting linearization processing unit 70 in FIG. 1 performs the non-linear subscripting on all the loops in the source program 10 when the value of the variable serving as the non-linear coefficient matches the most frequent combination. Two-versioning is performed in which a loop in which the character expression is linearized is executed. In the loop in which the non-linearized subscript expression is linearized in this manner, the dependency analysis and the 2
Since versioning can be performed, applicability of optimization is improved.

【0041】次に、具体的なソースプログラム例を用い
て、図1における言語処理系20の動作を説明する。図
6は、図1におけるソースプログラムの一部分を示す説
明図である。図6では省略しているが、図1のソースプ
ログラム10には、本例で示される以外のプログラム部
分も存在するものとし、図6の例で示すプログラム部分
は何回か実行されるものとする。
Next, the operation of the language processing system 20 in FIG. 1 will be described using a specific example of a source program. FIG. 6 is an explanatory diagram showing a part of the source program in FIG. Although omitted in FIG. 6, it is assumed that the source program 10 of FIG. 1 includes program portions other than those shown in this example, and that the program portion shown in the example of FIG. 6 is executed several times. I do.

【0042】本例のソースプログラムは先頭の行番号が
1のループを含んでおり、ループ内には値が設定される
配列Aがあり、配列Aの非線形添え字式内で非線形係数と
なる変数は「IX1」と「IX2」であり、その依存方程式
は、図7に示すようになる。
The source program of the present example includes a loop whose first line number is 1, and in the loop there is an array A in which a value is set, and a variable which becomes a nonlinear coefficient in the nonlinear subscript expression of the array A Are "IX1" and "IX2", and their dependent equations are as shown in FIG.

【0043】図7は、図6に示すソースプログラムに対
する依存方程式例を示す説明図である。図7において、
1番目の式「I1*IX1=I2*IX2+M」は、ループ制御変数の
値「I1」、「I2」に対する係数が定数ではなく変数「IX
1」、「IX2」なので非線形である。従来技術では非線形
式は扱えないので、図7に示す依存方程式からは依存関
係は計算できない。また、2バージョン化のための条件
の計算も依存方程式が線形の場合しか扱えないので、2
バージョン化も行なうことができない。
FIG. 7 is an explanatory diagram showing an example of a dependency equation for the source program shown in FIG. In FIG.
The first expression “I1 * IX1 = I2 * IX2 + M” is a constant for the loop control variable values “I1” and “I2” which is not a constant but a variable “IX”.
1 ”and“ IX2 ”, so it is non-linear. Since the non-linear equation cannot be handled by the conventional technique, the dependence cannot be calculated from the dependence equation shown in FIG. Also, the calculation of the condition for the two versions can be handled only when the dependent equation is linear.
Versioning is also not possible.

【0044】これに対して本例では、図1の言語処理系
20における非線形係数値プロファイル取得コード付加
処理部30と目的プログラム生成処理部40での処理が
実行されることにより、図1の非線形係数値プロファイ
ル取得用目的プログラム50として、図8に示すような
プログラムが生成される。
On the other hand, in the present example, the processing in the nonlinear coefficient value profile acquisition code addition processing unit 30 and the target program generation processing unit 40 in the language processing system 20 in FIG. As the coefficient value profile acquisition purpose program 50, a program as shown in FIG. 8 is generated.

【0045】図8は、図1における非線形係数値プロフ
ァイル取得用目的プログラムの具体例を示す説明図であ
る。本例では、ループの先頭の行番号を示す「LOOP
(1)」と非線形係数となる各変数「IX1」と「IX2」の変
数名と変数値を出力するWRITE文(1行目)がループの
直前に挿入されている。
FIG. 8 is an explanatory diagram showing a specific example of the objective program for obtaining a nonlinear coefficient value profile in FIG. In this example, “LOOP
(1) "and a WRITE statement (first line) for outputting the variable names and the variable values of the variables" IX1 "and" IX2 "to be non-linear coefficients are inserted immediately before the loop.

【0046】このような非線形係数値プロファイル取得
用目的プログラム(50)を、図1の実行処理部55で
実行すると、図9に示すような非線形係数値プロファイ
ル60が生成される。ただし、図8には示されないプロ
グラム部分での動作により「IX1」と「IX2」の値が変更
されたものとする。
When such an object program (50) for obtaining a nonlinear coefficient value profile is executed by the execution processing unit 55 in FIG. 1, a nonlinear coefficient value profile 60 as shown in FIG. 9 is generated. However, it is assumed that the values of “IX1” and “IX2” have been changed by an operation in a program portion not shown in FIG.

【0047】図9は、図1における非線形係数値プロフ
ァイルの具体例を示す説明図である。ループ先頭の行番
号が「1」のループにおける各変数名「IX1」と「IX2」
の変数値「1」が出力されている。このような非線形係
数値プロファイル60と図6のソースプログラム10に
対して、図1の言語処理系20では、非線形添え字式線
形化処理部70により、図10で示されるプログラムに
変換する。
FIG. 9 is an explanatory diagram showing a specific example of the nonlinear coefficient value profile in FIG. Variable names "IX1" and "IX2" in the loop whose line number is "1" at the beginning of the loop
Is output as the variable value “1”. The language processing system 20 of FIG. 1 converts the nonlinear coefficient value profile 60 and the source program 10 of FIG. 6 into the program shown in FIG.

【0048】図10は、図1における非線形添え字式線
形化処理部から出力されるプログラムの具体例を示す説
明図である。本図10において、行1は、非線形係数と
なる変数の値の組み合わせのうち最も頻度が高い「IX1=
1」かつ「IX2=1」の場合を条件とするIF文であり、THEN
側の行2〜行4のループ中では、「IX1」と「IX2」の値
がそれぞれ「1」と「1」で置きかえられ、配列添え字式
が線形化されている。ELSE側は図6で示す元のループの
コピーである。
FIG. 10 is an explanatory diagram showing a specific example of a program output from the non-linear subscript type linearization processing unit in FIG. In FIG. 10, row 1 indicates that “IX1 =
This is an IF statement conditional on "1" and "IX2 = 1", and THEN
In the loop of rows 2 to 4 on the side, the values of “IX1” and “IX2” are replaced with “1” and “1”, respectively, and the array subscript expression is linearized. The ELSE side is a copy of the original loop shown in FIG.

【0049】図1の最適化処理部90での最適化におい
て、線形添え字を対象とした既存の依存解析および2バ
ージョン化が実施されるが、図10の行2〜行4のルー
プは、従来技術の説明で示した図12のソースプログラ
ム例と同じであり、図12のソースプログラムに対して
2バージョン化を実施した後の目的プログラムである図
14の目的プログラムと同じに変換される。これによ
り、目的プログラムは図11で示す形になる。
In the optimization by the optimization processing unit 90 in FIG. 1, existing dependency analysis and two-version conversion for the linear subscript are performed. This is the same as the source program example of FIG. 12 shown in the description of the conventional technology, and is converted into the same as the target program of FIG. 14, which is the target program after the source program of FIG. Thus, the target program has the form shown in FIG.

【0050】図11は、図1における言語処理系で生成
された目的プログラムの具体例を示す説明図である。本
図11の行2〜10が、図10の行2〜4のループに対
して2バージョン化と最適化を実施した部分である。
FIG. 11 is an explanatory diagram showing a specific example of a target program generated by the language processing system in FIG. Lines 2 to 10 in FIG. 11 are portions obtained by performing two versions and optimizing the loop of lines 2 to 4 in FIG.

【0051】以上、図1〜図11を用いて説明したよう
に、本例の言語処理系20による値プロファイルに基づ
いた非線形添え字式線形化方法では、まず、ループ内で
値が設定されることによりループ内の参照点間で依存関
係を生じる可能性がある何れかの配列の、何れかの非線
形添え字式内でループ制御変数の非線形係数となる変数
について、その変数が取り得る値のプロファイルを実行
時に取得するためのコード(命令文)を、最適化対象の
ソースプログラムに付加し、このコードを付加したソー
スプログラムから目的プログラムを生成する。次に、こ
の目的プログラムを実行することによって非線形係数の
実際の値のプロファイルを取得する。そして、取得した
実際の値でループ内の非線形係数を置き換えることによ
り、添え字式を線形化する。
As described above with reference to FIGS. 1 to 11, in the non-linear subscript type linearization method based on the value profile by the language processing system 20 according to the present embodiment, a value is first set in a loop. For any variable that may cause a dependency between the reference points in the loop, the variable that becomes the non-linear coefficient of the loop control variable in any non-linear subscript expression will A code (command statement) for acquiring a profile at the time of execution is added to a source program to be optimized, and a target program is generated from the source program to which the code is added. Next, the profile of the actual value of the nonlinear coefficient is obtained by executing the target program. Then, the subscript expression is linearized by replacing the nonlinear coefficient in the loop with the obtained actual value.

【0052】このように、ループ中の配列参照の非線形
添え字中でループ制御変数の非線形係数となる変数の実
行時の値の履歴(値プロファイル)を取得し、例えば最
も頻度が多い値でその変数を置換することにより添え字
を線形化することにより、依存関係解析技術の適用が可
能となり、非線形添え字式を持つ配列参照を含むループ
に対する添え字式の線形化ができ、依存関係の解析精度
向上や2バージョン化適用が可能となり、最適化の適用
性が向上する。
As described above, the execution history (value profile) of the variable that becomes the nonlinear coefficient of the loop control variable in the nonlinear suffix of the array reference in the loop is acquired, and for example, the value of the most frequently used value is obtained. Linearizing subscripts by substituting variables makes it possible to apply dependency analysis technology, linearizing subscript expressions for loops containing array references with nonlinear subscript expressions, and analyzing dependencies. It is possible to improve accuracy and apply two versions, and the applicability of optimization is improved.

【0053】尚、本発明は、図1〜図11を用いて説明
した例に限定されるものではなく、その要旨を逸脱しな
い範囲において種々変更可能である。例えば、図1に示
す例では、最適化処理部90において、非線形添え字の
線形化後のプログラムを最適化したが、最適化せずに出
力して、実際の最適化は他の言語処理系で実施するとい
うことでも良い。
The present invention is not limited to the examples described with reference to FIGS. 1 to 11, and can be variously modified without departing from the gist thereof. For example, in the example shown in FIG. 1, the optimization processing unit 90 optimizes the program after the linearization of the non-linear subscripts, but outputs the program without optimization, and the actual optimization is performed by another language processing system. It may be that it is carried out in.

【0054】また、本例では、非線形係数となる変数値
の最頻の組み合わせに対する線形化のみを実施したが、
最頻以外の値の組み合わせに対しても線形化を実施した
り、全ての値の組み合わせに対して線形化して最適化の
適用性を判定することも考えられる。
Further, in this example, only the linearization for the most frequent combination of the variable values serving as the non-linear coefficients is performed.
Linearization may be performed on combinations of values other than the most frequent ones, or linearization may be performed on all combinations of values to determine applicability of optimization.

【0055】さらに、全ての値の組み合わせに対して線
形化して最適化の適用性を判定した場合は、この結果を
直接に最適化で利用するのではなく、プログラムのチュ
ーニング支援の一環として、ユーザに最適化の適用性を
提示することも考えられる。これにより、プログラムの
入力データよって非線形係数値のプロファイルが変化し
た場合でも最適化が適用できるようにユーザ指示文など
の挿入を促すことができる。
Further, when the applicability of optimization is determined by linearizing all combinations of values, this result is not used directly in optimization, but as a part of program tuning support, It is also conceivable to present the applicability of optimization to Thereby, even when the profile of the nonlinear coefficient value changes due to the input data of the program, it is possible to prompt the insertion of the user instruction so that the optimization can be applied.

【0056】[0056]

【発明の効果】本発明によれば、配列の添え字式が非線
形の場合にも、依存関係を計算でき、2バージョン化の
ための条件を求めることができ、非線形添え字式を持つ
配列参照を含むループに対する最適化の適用性が向上
し、例えば、プログラムの並列化などに適用することに
より、分散処理システムの並列化機能の強化を図ること
が可能できる。
According to the present invention, even when the subscript expression of the array is non-linear, the dependence can be calculated, the condition for two-version can be obtained, and the array reference having the non-linear subscript expression can be obtained. The applicability of the optimization to the loop including is improved, and for example, by applying to the parallelization of the program, the parallelization function of the distributed processing system can be enhanced.

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

【図1】本発明の値プロファイルに基づいた非線形添え
字式線形化方法の処理手順を実行する機能構成の一例を
示すブロック図である。
FIG. 1 is a block diagram showing an example of a functional configuration for executing a processing procedure of a non-linear subscript type linearization method based on a value profile according to the present invention.

【図2】図1におけるシステムのハードウエア構成を示
すブロック図である。
FIG. 2 is a block diagram illustrating a hardware configuration of the system in FIG. 1;

【図3】図1における非線形係数プロファイルの内容例
を示す説明図である。
FIG. 3 is an explanatory diagram showing a content example of a nonlinear coefficient profile in FIG. 1;

【図4】図1における非線形係数値プロファイル取得コ
ード付加処理部の処理動作例を示すすフローチャートで
ある。
FIG. 4 is a flowchart illustrating an example of a processing operation of a nonlinear coefficient value profile acquisition code addition processing unit in FIG. 1;

【図5】図1における非線形添え字式線形化処理部の処
理動作例を示すすフローチャートである。
FIG. 5 is a flowchart illustrating an example of a processing operation of a nonlinear subscript-type linearization processing unit in FIG. 1;

【図6】図1におけるソースプログラムの一部分を示す
説明図である。
FIG. 6 is an explanatory diagram showing a part of the source program in FIG. 1;

【図7】図6に示すソースプログラムに対する依存方程
式例を示す説明図である。
FIG. 7 is an explanatory diagram showing an example of a dependency equation for the source program shown in FIG. 6;

【図8】図1における非線形係数値プロファイル取得用
目的プログラムの具体例を示す説明図である。
FIG. 8 is an explanatory diagram showing a specific example of a target program for acquiring a nonlinear coefficient value profile in FIG. 1;

【図9】図1における非線形係数値プロファイルの具体
例を示す説明図である。
FIG. 9 is an explanatory diagram showing a specific example of a nonlinear coefficient value profile in FIG. 1;

【図10】図1における非線形添え字式線形化処理部か
ら出力されるプログラムの具体例を示す説明図である。
FIG. 10 is an explanatory diagram showing a specific example of a program output from the nonlinear subscript linearization processing unit in FIG. 1;

【図11】図1における言語処理系で生成された目的プ
ログラムの具体例を示す説明図である。
FIG. 11 is an explanatory diagram showing a specific example of a target program generated by the language processing system in FIG. 1;

【図12】従来のコンパイルの対象となるソースプログ
ラム例を示す説明図である。
FIG. 12 is an explanatory diagram showing an example of a source program to be compiled conventionally.

【図13】図12におけるソースプログラムでの依存方
程式例を示す説明図である。
FIG. 13 is an explanatory diagram showing an example of a dependency equation in the source program in FIG.

【図14】図12におけるソースプログラムを最適化し
て得られる目的プログラム例を示す説明図である。
14 is an explanatory diagram showing an example of a target program obtained by optimizing the source program in FIG.

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

1:表示装置、2:入力装置、3:外部記憶装置、4:
情報処理装置、5:光ディスク、6:駆動装置、10:
ソースプログラム、20:言語処理系、30:非線形係
数値プロファイル取得コード付加処理部、40:目的プ
ログラム生成処理部、50:非線形係数値プロファイル
取得用目的プログラム、55:実行処理部、60:非線
形係数値プロファイル、70:非線形添え字式線形化処
理部、90:最適化処理部、95:目的プログラム。
1: display device, 2: input device, 3: external storage device, 4:
Information processing device, 5: optical disk, 6: drive device, 10:
Source program, 20: Language processing system, 30: Non-linear coefficient value profile acquisition code addition processing unit, 40: Object program generation processing unit, 50: Object program for non-linear coefficient value profile acquisition, 55: Execution processing unit, 60: Non-linear relation Numerical profile, 70: Non-linear subscript type linearization processing unit, 90: Optimization processing unit, 95: Objective program.

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 ソースプログラムから目的プログラムを
生成する言語処理系における非線形添え字式の線形化方
法であって、上記ソースプログラム中のループ内で値が
設定される配列の非線形添え字式内で非線形係数となる
変数の実行時の値の履歴(値プロファイル)を取得する
ための命令コードを上記ソースプログラムに付加するス
テップと、上記命令コードを付加したソースプログラム
から目的プログラムを生成するステップと、該目的プロ
グラムを実行して上記命令コードにより得られた非線形
係数となる変数の値プロファイルを取得するステップ
と、該値プロファイルを用いて上記ループ中の非線形添
え字式を線形化するステップとを有することを特徴とす
る値プロファイルに基づいた非線形添え字式線形化方
法。
1. A method for linearizing a non-linear subscript expression in a language processing system for generating a target program from a source program, wherein the non-linear subscript expression of an array in which a value is set in a loop in the source program. Adding an instruction code for acquiring a history (value profile) of a value at the time of execution of a variable serving as a nonlinear coefficient to the source program; and generating a target program from the source program to which the instruction code is added. Executing the objective program to obtain a value profile of a variable serving as a non-linear coefficient obtained by the instruction code; and linearizing a non-linear subscript expression in the loop using the value profile. A non-linear subscripted linearization method based on a value profile.
JP11154774A 1999-06-02 1999-06-02 Method for linearizing nonlinear index expression based on value profile Pending JP2000347870A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11154774A JP2000347870A (en) 1999-06-02 1999-06-02 Method for linearizing nonlinear index expression based on value profile

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11154774A JP2000347870A (en) 1999-06-02 1999-06-02 Method for linearizing nonlinear index expression based on value profile

Publications (1)

Publication Number Publication Date
JP2000347870A true JP2000347870A (en) 2000-12-15

Family

ID=15591611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11154774A Pending JP2000347870A (en) 1999-06-02 1999-06-02 Method for linearizing nonlinear index expression based on value profile

Country Status (1)

Country Link
JP (1) JP2000347870A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189727B2 (en) 2006-03-23 2015-11-17 Xerox Corporation RFID bridge antenna

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189727B2 (en) 2006-03-23 2015-11-17 Xerox Corporation RFID bridge antenna

Similar Documents

Publication Publication Date Title
US6978450B2 (en) Method and system for optimizing compilation time of a program by selectively reusing object code
US6983458B1 (en) System for optimizing data type definition in program language processing, method and computer readable recording medium therefor
JPH11259437A (en) Reducing system for unnecessary barrier instruction
JPH09330233A (en) Optimum object code generating method
US20100199269A1 (en) Program optimization device and program optimization method
JPH10228382A (en) Compiling system
JPH1097430A (en) Method and system for inserting assembly code routine into source code routine for optimization
JPH11212797A (en) Program conversion method, program converter and medium for storing program conversion program
US20070277166A1 (en) Method and apparatus for performing versioning for loop, method and apparatus for collecting array range check information in basic blocks, method for modifying array range check information, method for optimizing array range checks, method for generating codes for array range checks, method and apparatus for eliminating redundant array range checks, method for selecting array range checks, method for modifying array range checks, method for collecting array range checks, and method for determining handling of array range checks
US20020010907A1 (en) Disassembling object code
US6687899B1 (en) Relocation format for linking
JP3539613B2 (en) Array summary analysis method for loops containing loop jump statements
JP2000347870A (en) Method for linearizing nonlinear index expression based on value profile
US7240337B2 (en) Executing scalar replacement in program optimization
US20170344351A1 (en) Information processing apparatus, compiling management method, and recording medium
US20220066750A1 (en) Framework for automated generation of qubo or higher order formulations from high-level source code
US20070204260A1 (en) Program transformation system
JP2010128960A (en) Method for generating prefetch instruction, compiler, and program
US9274929B2 (en) Constraint derivation in context following for use with object code insertion
JPH10320212A (en) Cache optimizing method
WO2023233630A1 (en) Computing device, computing method, and recording medium
JP2002082811A (en) Compiling method and recording medium
JP2014099108A (en) Execution time calculating device, execution time calculating method, and program
JPH11272475A (en) Automatic re-entrant method for non-re-entrant program and system therefor
WO2023248424A1 (en) Computation device, computation method, and recording medium