JP2002099424A - Compile method to use register in storage area - Google Patents

Compile method to use register in storage area

Info

Publication number
JP2002099424A
JP2002099424A JP2000295435A JP2000295435A JP2002099424A JP 2002099424 A JP2002099424 A JP 2002099424A JP 2000295435 A JP2000295435 A JP 2000295435A JP 2000295435 A JP2000295435 A JP 2000295435A JP 2002099424 A JP2002099424 A JP 2002099424A
Authority
JP
Japan
Prior art keywords
register
variable
precision
assigned
storage area
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
JP2000295435A
Other languages
Japanese (ja)
Inventor
Hiroyuki Hashimoto
博幸 橋本
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
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000295435A priority Critical patent/JP2002099424A/en
Publication of JP2002099424A publication Critical patent/JP2002099424A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a compile method to reduce memory references which occur when there is no register to be assigned to a single precision variable. SOLUTION: In a process to assign a register to a variable, when there is no register to be assigned to the single precision variable, it is checked whether a register usable only for a double precision is allowed to be assigned in a storage area of a single precision register, if allowed, the register usable only for the double precision is assigned.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、主記憶装置(メモ
リ)の参照回数を削減するコンパイル方法に関し、特に
レジスタ割り付け方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a compiling method for reducing the number of references to a main memory (memory), and more particularly to a register allocating method.

【0002】[0002]

【従来の技術】マイクロプロセッサ性能は、命令レベル
並列性の向上や動作周波数の向上などにより、年々向上
を続けている。これに対し、主記憶装置(メモリ)の性
能はプロセッサ性能の向上に追いついてない。そのた
め、メモリの参照回数が多くなるとメモリ性能がネック
となり実行性能が低下してしまう場合がある。そのた
め、ソースプログラムをオブジェクトプログラムに変換
するコンパイラにおいて、メモリの参照回数を削減する
ことは、実行性能を向上させるために重要である。
2. Description of the Related Art The performance of microprocessors has been improving year by year due to improvements in instruction level parallelism and operating frequencies. On the other hand, the performance of the main storage device (memory) cannot keep up with the improvement of the processor performance. Therefore, when the number of references to the memory increases, the memory performance may become a bottleneck and the execution performance may decrease. Therefore, in a compiler that converts a source program into an object program, it is important to reduce the number of times of referring to a memory in order to improve execution performance.

【0003】ソースプログラムをオブジェクトプログラ
ムに変換するコンパイラにおいて、オブジェクトプログ
ラムの実行性能を向上させるための最適化方法は、これ
までにも数多く開発されているが、その中の最適化方式
の1つとして、ソースプログラム中で参照されている変
数に対し、限られた資源であるレジスタにデータを保持
したまま実行を行うことによりメモリの参照回数を削減
し、オブジェクトプログラムの実行性能を向上させるレ
ジスタ割り付け処理が存在する。
[0003] In a compiler for converting a source program into an object program, a number of optimization methods for improving the execution performance of the object program have been developed so far, but one of the optimization methods is one of them. Register allocation processing to reduce the number of memory references and improve the execution performance of object programs by executing the variables referenced in the source program while holding the data in registers, which are limited resources Exists.

【0004】この技術は、「A.V.エイホ・J.D.
ウルマン著/土居範久訳:コンパイラ、1986年、(株)
培風館、485頁〜488頁」に記載されている。この
方法では、レジスタ割り付け処理において、ある型の変
数に割り付けるレジスタがない場合は、変数の値を保持
するために格納領域をメモリ中に確保して、値の格納・
取り出しのためのメモリ参照命令を生成していた。
[0004] This technology is described in "AV Eho JD.
By Ullman / Translated by Norihisa Doi: Compiler, 1986, Inc.
Baifukan, pages 485 to 488 ". In this method, if there is no register to be allocated to a certain type of variable in the register allocation process, a storage area is reserved in memory to hold the value of the variable,
A memory reference instruction for retrieval was generated.

【0005】[0005]

【発明が解決しようとする課題】上記第1の従来技術に
よれば、ある型の変数にはその型で利用できるレジスタ
だけを割り付け対象にしているため、単精度変数には単
精度で利用できるレジスタを、倍精度変数には倍精度で
利用できるレジスタを割り付ける。そのため、単精度変
数へのレジスタ割り付け時に、単精度に利用できるレジ
スタが割り付けられない場合、倍精度レジスタに空きが
あっても、メモリの参照命令を生成していた。
According to the first prior art, since only registers that can be used for a certain type are allocated to variables of a certain type, single-precision variables can be used with single precision. Registers are assigned to registers, and registers that can be used in double precision are assigned to double precision variables. Therefore, when a register that can be used for single precision is not allocated when allocating a register to a single precision variable, a memory reference instruction is generated even if there is a free space in the double precision register.

【0006】本発明の目的は、倍精度のみで利用できる
レジスタがある場合に、単精度で利用できるレジスタの
格納先として、倍精度のみで利用できるレジスタを使う
ことにより、単精度変数にレジスタが割り付かなかった
場合に発生するメモリの参照命令を削減し、オブジェク
トプログラムの実行性能を向上させるためのコンパイル
方法を提供することにある。
An object of the present invention is to use a register that can be used only in double precision as a storage destination of a register that can be used in single precision when there is a register that can be used only in double precision. An object of the present invention is to provide a compiling method for reducing the number of memory reference instructions generated when no assignment is made and improving the execution performance of an object program.

【0007】[0007]

【課題を解決するための手段】本発明の目的は、単精度
変数に割り付けるレジスタがない場合に、倍精度のみに
利用できるレジスタが割り付けられるかどうかを判定
し、割り付け可能な場合は、倍精度のみに利用できるレ
ジスタを割り付けることにより達成する。
SUMMARY OF THE INVENTION An object of the present invention is to determine whether a register that can be used only for double-precision is allocated when there is no register to be allocated to a single-precision variable. This is achieved by allocating registers that can only be used.

【0008】[0008]

【発明の実施の形態】以下、図面を用いて本発明の実施
の形態を説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0009】図1は、本発明によるコンパイラが稼動す
る計算機システムの構成図である。計算機システムは、
CPU101、ディスプレイ装置102、キーボード1
03、主記憶装置104、外部記憶装置107より構成
されている。主記憶装置104には、コンパイラ105
と、コンパイル処理過程で必要となる中間コード106
が保持される。外部記憶装置107には、ソースプログ
ラム108と、オブジェクトプログラム109が格納さ
れる。コンパイル処理は、コンパイラ105をCPU1
01で実行させることにより行われる。
FIG. 1 is a configuration diagram of a computer system on which a compiler according to the present invention operates. The computer system is
CPU 101, display device 102, keyboard 1
03, a main storage device 104, and an external storage device 107. The main storage device 104 has a compiler 105
And the intermediate code 106 required in the compilation process
Is held. The external storage device 107 stores a source program 108 and an object program 109. Compile processing is performed by the compiler 105
01.

【0010】図2は、コンパイラ105で行われるコン
パイル処理の一例を示したフローチャートである。
FIG. 2 is a flowchart showing an example of the compiling process performed by the compiler 105.

【0011】コンパイラ105は、構文解析201、レ
ジスタ割り付け202、コード生成203からなる。構
文解析201では、ソースプログラム108を読み込
み、コンパイラ内部で処理可能な中間コード106を作
成する。レジスタ割り付け202では、中間コード10
6を読み込み、中間語中に出現する変数の参照情報を収
集し、レジスタ割り付けを行った後、各参照をレジスタ
の参照またはメモリの参照に変換した中間コード106
を生成する。コード生成203では、中間コード106
を読み込み、オブジェクトプログラム109を生成す
る。
The compiler 105 includes a syntax analysis 201, a register allocation 202, and a code generator 203. In the syntax analysis 201, the source program 108 is read, and the intermediate code 106 that can be processed inside the compiler is created. In the register allocation 202, the intermediate code 10
6 is read, reference information of variables appearing in the intermediate language is collected, registers are allocated, and then each reference is converted into a register reference or a memory reference.
Generate In the code generation 203, the intermediate code 106
Is read, and an object program 109 is generated.

【0012】図6は、FORTRANプログラムの一部
で、変数A,B,C,Dが単精度浮動小数点型で宣言さ
れ、プログラムのある時点で変数Bと変数Cを加算した
結果を変数Aが保持し、その後変数Dと変数Aを加算し
た結果が変数Cに保持されることを示したものである。
FIG. 6 shows a part of a FORTRAN program in which variables A, B, C, and D are declared in a single-precision floating-point type. At a certain point in the program, the result of adding the variables B and C is referred to as a variable A. This indicates that the result of addition of the variable D and the variable A is stored in the variable C after that.

【0013】図3は、レジスタ割り付け202の処理の
一例を示したフローチャートである。
FIG. 3 is a flowchart showing an example of the processing of the register allocation 202.

【0014】まずステップ301では、中間コード10
6からレジスタ割り付けの対象にする変数を登録する。
次にステップ302では、登録されているすべての変数
のライブ区間を計算する。ライブ区間とは、変数が定義
されてから使用されるまでの区間のことを指す。例え
ば、図7の変数Aのライブ区間は、変数Aが(702)
で定義され、(704)で使用されるので、(702)
〜(704)になる。次にステップ303では、変数の
ライブ区間に対しその区間で利用されてないレジスタが
あるかどうかを調べ、利用されてないレジスタがある場
合はそのレジスタを割り付ける。利用されてないレジス
タがない場合は、変数の値を格納するための格納領域を
確保する。最後にステップ304では、変数の参照を、
変数にレジスタが割り付けられている場合はレジスタの
参照にし、変数にレジスタが割り付けられておらず格納
領域が確保されている場合は格納領域の参照にする。こ
の格納領域の参照が、メモリの参照のことである。
First, in step 301, the intermediate code 10
Register the variables to be assigned to registers starting from 6.
Next, in step 302, live sections of all registered variables are calculated. The live section refers to a section from when a variable is defined to when it is used. For example, in the live section of the variable A in FIG.
And is used in (704), so (702)
To (704). Next, in step 303, it is checked whether or not there is a register that is not used in the live section of the variable in that section, and if there is a register that is not used, the register is allocated. If there is no unused register, a storage area for storing the value of the variable is secured. Finally, in step 304, the variable reference
When a register is assigned to a variable, the register is referred to. When a register is not assigned to the variable and a storage area is reserved, the storage area is referred to. This reference to the storage area is a reference to the memory.

【0015】ここで、従来方法のコンパイラにおけるレ
ジスタ割り付けについて、図7を用いて説明する。変数
Aに割り付けられるレジスタを調べる処理では、変数の
ライブ区間で利用されてないレジスタを調べることによ
って達成される。この図の場合、単精度に利用できるレ
ジスタfr1、fr2、fr3が3つあり、fr1は
(701)〜(705)で、fr2は(701)〜(7
03)、(704)〜(705)で、fr3は(70
1)〜(704)で既に利用され、倍精度に利用できる
レジスタdr1は(701)〜(705)の区間で利用
されてないことを示している。このような場合、変数A
のライブ区間で単精度に利用できるレジスタがないた
め、従来方法のコンパイラでは変数の定義点でレジスタ
からメモリへ格納し、使用点ではメモリからレジスタへ
取り出すための命令が生成される。その際、メモリとの
やりとりで使用するレジスタのことをワークレジスタと
する。ワークレジスタとは、レジスタを割り付けること
ができなかった変数の値をメモリへ格納または取り出し
する際に利用するレジスタのことである。
Here, register allocation in the conventional compiler will be described with reference to FIG. The process of examining a register assigned to the variable A is achieved by examining a register that is not used in the live section of the variable. In this case, there are three registers fr1, fr2, and fr3 that can be used for single precision, where fr1 is (701) to (705), and fr2 is (701) to (7).
03), (704) to (705), and fr3 is (70)
This indicates that the register dr1 already used in 1) to (704) and available in double precision is not used in the section from (701) to (705). In such a case, the variable A
Since there is no register that can be used for single precision in the live section of the above, the compiler of the conventional method generates an instruction for storing the variable from the register to the memory at the definition point and extracting the variable from the memory to the register at the point of use. At this time, a register used for communication with the memory is referred to as a work register. A work register is a register used when storing or retrieving the value of a variable for which a register could not be allocated to or from a memory.

【0016】図8は、図6のソースプログラムを従来方
法のコンパイラでコンパイルしたときのオブジェクトプ
ログラムの例である。図8のオブジェクトプログラム
は、変数Aに割り付けるレジスタがなかった場合に生成
されるものである。
FIG. 8 shows an example of an object program when the source program of FIG. 6 is compiled by a conventional compiler. The object program in FIG. 8 is generated when there is no register to be assigned to the variable A.

【0017】変数に割り付けるレジスタがない場合、そ
の変数の値は定義点でワークレジスタからメモリへ格納
され、使用点でメモリからワークレジスタへ取り出され
る。定義点602では、定義された値をメモリに格納す
るために、加算の結果定義された変数Aの値をワークレ
ジスタ(fr0)に代入する(801)。そして、この
ワークレジスタの内容をメモリに格納するための命令が
生成される(802)。使用点603では、メモリから
値を取り出すために、メモリからワークレジスタへ値を
取り出す命令が生成される(803)。そして、ワーク
レジスタを使って演算を行う(804)。
When there is no register to be assigned to a variable, the value of the variable is stored from the work register to the memory at the definition point, and fetched from the memory to the work register at the point of use. At the definition point 602, in order to store the defined value in the memory, the value of the variable A defined as a result of the addition is assigned to the work register (fr0) (801). Then, an instruction for storing the contents of the work register in the memory is generated (802). At use point 603, an instruction to retrieve a value from memory to a work register is generated to retrieve the value from memory (803). Then, an operation is performed using the work register (804).

【0018】図4は、本発明の方法による、変数にレジ
スタを割り付ける処理303の処理の一例を示したフロ
ーチャートである。
FIG. 4 is a flowchart showing an example of the process 303 for allocating registers to variables according to the method of the present invention.

【0019】まずステップ401では、ある変数に対
し、その変数の型に対応したレジスタが割り付けられる
かどうかを調べる。割り付けられるレジスタがあればス
テップ405で、レジスタを割り付けて終了する。割り
付けられるレジスタがない場合は、ステップ402で変
数の型が単精度かどうかを調べる。単精度変数でない場
合は、ステップ404で変数の値を格納するための格納
領域を確保して終了する。単精度変数の場合は、ステッ
プ403で変数の格納領域として使える倍精度のみに使
えるレジスタがあるかどうかを調べる。これは、変数の
ライブ区間で、利用されてない倍精度のみに利用できる
レジスタがあるかどうかを調べることによって実現す
る。利用可能なレジスタがある場合は、ステップ405
でレジスタを割り付け、利用可能なレジスタがない場合
は、ステップ404で格納領域を確保して終了する。
First, at step 401, it is checked whether or not a register corresponding to a type of a certain variable is allocated. If there is a register to be allocated, at step 405, the register is allocated and the processing is terminated. If there is no register to be allocated, step 402 checks whether the type of the variable is single precision. If the variable is not a single-precision variable, a storage area for storing the value of the variable is secured in step 404, and the process ends. In the case of a single-precision variable, it is checked in step 403 whether there is a register that can be used only for double-precision and that can be used as a variable storage area. This is achieved by checking in the live section of the variable if there is a register available only for double precision that is not being used. If there are registers available, step 405
If there are no available registers, a storage area is reserved in step 404 and the processing is terminated.

【0020】図5は、変数の参照をレジスタまたは格納
領域の参照に変換する処理304の処理の一例を示した
フローチャートである。
FIG. 5 is a flowchart showing an example of the process 304 for converting a reference to a variable into a reference to a register or a storage area.

【0021】まず、ステップ501では、ある変数の型
に対応したレジスタが割りついているかどうかを調べ
る。そのようなレジスタが割りついている場合は、ステ
ップ502で変数の参照をレジスタの参照に変換して終
了する。変数の型に対応したレジスタが割り付いてない
場合は、ステップ503で単精度変数に倍精度のみで利
用できるレジスタが割り付いているかどうかを調べる。
レジスタが割り付いていない場合は、ステップ505で
変数の参照を格納領域の参照に変換して終了する。単精
度変数に倍精度のみで利用できるレジスタが割り付いて
いる場合は、ステップ504の処理を行う。ステップ5
04では、まず変数の参照点をワークレジスタの参照に
変換した後、定義点ではワークレジスタから割り付けた
レジスタへの転送命令を作成し定義点の直後に挿入す
る。また、使用点では割り付けたレジスタからワークレ
ジスタへの転送命令を作成し使用点の直前に挿入する。
First, in step 501, it is checked whether or not a register corresponding to a certain variable type is allocated. If such a register has been allocated, the reference of the variable is converted into the reference of the register in step 502, and the processing is terminated. If a register corresponding to the type of the variable has not been assigned, it is checked in step 503 whether a single-precision variable is assigned a register that can be used only in double precision.
If a register has not been allocated, the reference of the variable is converted into the reference of the storage area in step 505, and the processing is terminated. If a register that can be used only in double precision is assigned to the single precision variable, the process of step 504 is performed. Step 5
In step 04, first, the reference point of the variable is converted into the reference of the work register, and then at the definition point, a transfer instruction from the work register to the allocated register is created and inserted immediately after the definition point. At the point of use, a transfer instruction from the assigned register to the work register is created and inserted immediately before the point of use.

【0022】図9は、図6のソースプログラムに、本発
明のコンパイラを適用した場合に生成されるオブジェク
トプログラムの一例である。
FIG. 9 is an example of an object program generated when the compiler of the present invention is applied to the source program of FIG.

【0023】図7の変数Aのライブ区間である(70
2)〜(704)では、単精度に利用できるレジスタに
空きがないが、倍精度のみに利用できるレジスタ(dr
1)には空きがあることが分かる。そこで、変数Aに対
し倍精度のみに利用できるレジスタ(dr1)を割り付
けたとする。そうすると、従来発生していたメモリの参
照命令(802)(803)が、レジスタ間の転送命令
(902)(904)になり、メモリの参照がなくなる
ことになる。
The live section of variable A in FIG.
In (2) to (704), there are no available registers available for single precision, but registers (dr) available only for double precision
It can be seen that 1) has a vacancy. Therefore, it is assumed that a register (dr1) that can be used only for double precision is assigned to the variable A. Then, the memory reference instructions (802) and (803), which have been generated in the past, become the transfer instructions (902) and (904) between the registers, and the memory reference is eliminated.

【0024】[0024]

【発明の効果】本発明によれば、単精度で利用できるレ
ジスタと、倍精度のみで利用できるレジスタを持つシス
テムでのレジスタ割り付け処理において、倍精度のみに
利用できるレジスタを単精度で利用できるレジスタの格
納領域として利用することにより、単精度変数に割り付
けるレジスタがない場合に、メモリの参照回数を削減す
ることができ、オブジェクトコードの実行性能向上につ
ながる。
According to the present invention, in a register allocation process in a system having a register which can be used in single precision and a register which can be used only in double precision, a register which can be used in single precision only in a register which can be used in double precision only. When there is no register to be assigned to a single-precision variable, the number of times of referring to the memory can be reduced, which leads to an improvement in the execution performance of the object code.

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

【図1】コンパイラが稼動するシステムの構成図。FIG. 1 is a configuration diagram of a system on which a compiler operates.

【図2】コンパイラの処理手順を示す図。FIG. 2 is a diagram showing a processing procedure of a compiler.

【図3】レジスタ割り付けの処理手順を示す図。FIG. 3 is a diagram showing a processing procedure of register allocation.

【図4】変数にレジスタを割り付ける処理手順を示す
図。
FIG. 4 is a diagram showing a processing procedure for allocating registers to variables.

【図5】変数の参照をレジスタまたは格納領域の参照に
変換する処理手順を示す図。
FIG. 5 is a diagram showing a processing procedure for converting a reference of a variable into a reference of a register or a storage area.

【図6】ソースプログラムの例を示す図。FIG. 6 is a diagram showing an example of a source program.

【図7】変数のライブ区間を示す図。FIG. 7 is a diagram showing a live section of a variable.

【図8】従来方法のオブジェクトコードを示す図。FIG. 8 is a diagram showing an object code according to a conventional method.

【図9】本発明を適用した場合のオブジェクトコードを
示す図。
FIG. 9 is a diagram showing an object code when the present invention is applied.

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

401…変数に割り付けられるレジスタがあるかどうか
を調べる処理、402…変数の型が単精度かどうかを調
べる処理、403…単精度で利用できるレジスタの格納
領域に使える、倍精度のみに利用できるレジスタがある
かどうかを調べる処理、404…変数の格納領域を確保
する処理、405…変数にレジスタを割り付ける処理。
401: a process for checking whether there is a register assigned to a variable; 402: a process for checking whether the type of a variable is single-precision; 403: a register that can be used for a storage area of a register that can be used for single-precision and that can be used only for double-precision 404... Processing for reserving a variable storage area, 405... Processing for allocating registers to variables.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 第1の型に対する演算命令が用意されて
いる第1のレジスタ群と、第2の型に対する演算命令が
用意されている第2のレジスタ群と、第1のレジスタ群
と第2のレジスタ群との間の転送命令を有するプロセッ
サ向きのコンパイラであって、第2の型の変数の格納領
域として第1のレジスタ群を用いることを特徴とする、
コンパイル方法。
1. A first register group in which operation instructions for a first type are prepared, a second register group in which operation instructions for a second type are prepared, and a first register group and a second register group. A compiler for a processor having a transfer instruction to and from a second group of registers, wherein the first group of registers is used as a storage area for a variable of a second type.
Compilation method.
【請求項2】 請求項1のコンパイル方法であって、上
記第1の型を倍精度浮動小数点型とし、上記第2の型を
単精度浮動小数点型とすることを特徴とする、コンパイ
ル方法。
2. The compiling method according to claim 1, wherein the first type is a double-precision floating-point type, and the second type is a single-precision floating-point type.
【請求項3】 請求項1のコンパイル方法を用いたコン
パイラ。
3. A compiler using the compiling method according to claim 1.
【請求項4】 請求項3のコンパイラを格納した記憶媒
体。
4. A storage medium storing the compiler according to claim 3.
JP2000295435A 2000-09-25 2000-09-25 Compile method to use register in storage area Pending JP2002099424A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000295435A JP2002099424A (en) 2000-09-25 2000-09-25 Compile method to use register in storage area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000295435A JP2002099424A (en) 2000-09-25 2000-09-25 Compile method to use register in storage area

Publications (1)

Publication Number Publication Date
JP2002099424A true JP2002099424A (en) 2002-04-05

Family

ID=18777860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000295435A Pending JP2002099424A (en) 2000-09-25 2000-09-25 Compile method to use register in storage area

Country Status (1)

Country Link
JP (1) JP2002099424A (en)

Similar Documents

Publication Publication Date Title
US7725883B1 (en) Program interpreter
US7926046B2 (en) Compiler method for extracting and accelerator template program
JP3933380B2 (en) compiler
US5815719A (en) Method and apparatus for easy insertion of assembler code for optimization
JPH11259437A (en) Reducing system for unnecessary barrier instruction
JP2000035893A (en) Method for statically initializing arrangement of data processing system, data processing method, data processing system and computer readable storage medium storing program making computer execute its control procedure
US6925639B2 (en) Method and system for register allocation
JP2000347876A (en) Method and device for stack slot allocation
US20070300210A1 (en) Compiling device, list vector area assignment optimization method, and computer-readable recording medium having compiler program recorded thereon
US7770152B1 (en) Method and apparatus for coordinating state and execution context of interpreted languages
US6256782B1 (en) Compile apparatus, compile method and computer-readable medium storing compiler
CN111061485A (en) Task processing method, compiler, scheduling server, and medium
JP2000353097A (en) Method and device for generating low density interference graph
JP3241214B2 (en) Distributed processing apparatus and process execution method
JP2002099424A (en) Compile method to use register in storage area
US20120017070A1 (en) Compile system, compile method, and storage medium storing compile program
US6912647B1 (en) Apparatus and method for creating instruction bundles in an explicitly parallel architecture
US6029003A (en) Method of assigning external variables to memories when compiling source program
JP3608993B2 (en) Compiler device and recording medium recording compiler program
JP2556148B2 (en) Vector register allocation method
JP3645671B2 (en) Processor device having instruction buffer
JP3566602B2 (en) Compilation method and recording medium recording compilation program
JP2729795B2 (en) Parallel computer and control method thereof
JPH07105013A (en) Register allocation system
JP2003271392A (en) Register allocation method