JPH0421031A - Register reallocating system - Google Patents

Register reallocating system

Info

Publication number
JPH0421031A
JPH0421031A JP12347490A JP12347490A JPH0421031A JP H0421031 A JPH0421031 A JP H0421031A JP 12347490 A JP12347490 A JP 12347490A JP 12347490 A JP12347490 A JP 12347490A JP H0421031 A JPH0421031 A JP H0421031A
Authority
JP
Japan
Prior art keywords
instruction
block
register
equivalence
instructions
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
JP12347490A
Other languages
Japanese (ja)
Inventor
Kuniko Yamamoto
山本 久仁子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP12347490A priority Critical patent/JPH0421031A/en
Publication of JPH0421031A publication Critical patent/JPH0421031A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To reduce the size of an object program and to improve the execution speed by investigating a state of a dependence relation related to a register of an instruction and an equivalence relation between a memory and a register and executing a reallocation of the register and eliminating an unnecessary load instruction. CONSTITUTION:An inter-block register flow analyzing means 3 investigates a dependence relation of a register between instruction blocks divided by an instruction block dividing means 2 and derives a register living in an inlet and an outlet of the instruction block, and an equivalence relation analyzing means 4 analyzes a state of an equivalence relation of an instruction along a control flow with regard to the instruction block of an equivalence relation analytic object. Subsequently, when there is an unnecessary load instruction from a memory in which the equivalence relation is analyzed, a register reallocating means 5 executes a reallocation of the register so that there is no inconsistency and eliminates an unnecessary load instruction, and an instruction output means 6 outputs a list of instructions to which the register is reallocated to an instruction store medium 10. In such a way, the size of an object program can be reduced, and the executing speed can also be improved.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はレジスタ再割付は方式に関し、特にメモリ・レ
ジスタ間のロード/ストア命令をもち間接分岐命令をも
たないアーキテクチャ上におけるレジスタ再割付は方式
に関する。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a register reallocation method, and in particular, register reallocation on an architecture that has load/store instructions between memory and registers and does not have indirect branch instructions. Regarding the method.

〔従来の技術〕[Conventional technology]

従来、レジスタ割付けは、コンパイラ内部の中間テキス
トまたはコード生成後のテキク、トに対して行われてお
り、(レジスタ割付けも含めて)機械語命令の生成完了
後にレジスタ割付けを再度状みる方式はなかった。
Traditionally, register allocation has been done to intermediate text inside the compiler or to text after code generation, and there is no way to re-allocate registers (including register allocation) after machine language instruction generation is complete. Ta.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上述した従来のレジスタ割付は方式では、レジスタ割付
けをコンパイラ内部の中間テキストまたはコード生成後
のテキストに対して行うようになっていたので、必ずし
も同値関係(命令実行中のある時点でメモリの内容とレ
ジスタの内容とが同じ値である関係)を考慮したレジス
タ割付けが行われているとはかぎらず、同値関係を有効
利用しない不要なロード命令が生成される場合があり、
オブジェクトプログラムのサイズの増大や実行スピード
の低下を招くという欠点がある。
In the conventional register allocation method described above, register allocation was done to intermediate text inside the compiler or to text after code generation, so it is not necessary to have an equivalence relationship (memory contents at a certain point during instruction execution). Register allocation is not always done taking into account the relationship that the content of the register has the same value, and unnecessary load instructions that do not make effective use of the equivalence relationship may be generated.
This has the drawback of increasing the size of the object program and decreasing the execution speed.

また、コンパイラの構成に依存する中間テキストまたは
コード生成後のテキストに対してレジスタを割り付けて
いたので、コンパイラごとにコンパイラ特有のレジスタ
割付は処理を用意する必要があるという欠点がある。
Furthermore, since registers are allocated to intermediate text or text after code generation that depends on the compiler configuration, there is a drawback that it is necessary to prepare a compiler-specific register allocation process for each compiler.

本発明の目的は、上述の点に鑑み、命令列の制御移行に
沿って命令列を解析し命令のレジスタに関する依存関係
およびメモリ・レジスタ間の同値関係の状態を調査して
レジスタの再割付けを行い不要なロード命令を削除する
ことにより、オブジェクトプログラムのサイズの縮小お
よび実行スピードの向上を図るようにしたレジスタ再割
付は方式を提供することにある。
In view of the above-mentioned points, an object of the present invention is to analyze a sequence of instructions along the control transition of the sequence of instructions, investigate dependencies regarding registers of instructions and equivalence relationships between memory registers, and reallocate registers. The object of the present invention is to provide a register reallocation method that reduces the size of an object program and improves its execution speed by eliminating unnecessary load instructions.

〔課題を解決するための手段〕[Means to solve the problem]

本発明のレジスタ再割付は方式は、メモリ・レジスタ間
のロード/ストア命令をもち間接分岐命令をもたないア
ーキテクチャ上において、命令格納媒体から命令の並び
を入力してメモリ上に展開する命令入力手段と、この命
令入力手段によりメモリ上に展開された命令を解析し分
岐命令の直後と分岐先ラベル位置とで命令の並びを分割
して命令ブロックを作成するとともに分割した命令ブロ
ック間の制御の流れを求めて同値関係解析対象の命令ブ
ロックを限定する命令ブロック分割手段と、この命令ブ
ロック分割手段により分割された命令ブロック間のレジ
スタの依存関係を調査し命令ブロックの入口および出口
で生きているレジスタを求めるブロック間レジスタフロ
ー解析手段と、前記命令ブロック分割手段により限定さ
れた同値関係解析対象の命令ブロックについて制御フロ
ーに沿って命令の同値関係の状態を解析する同値関係解
析手段と、この同値関係解析手段により同値関係が解析
されたメモリからの不要なロード命令があれば矛盾がな
いようにレジスタの再割付けを行って不要なロード命令
を削除するレジスタ再割付は手段と、このレジスタ再割
付は手段によるレジスタ再割付は済みの命令の並びを命
令格納媒体に出力する命令出力手段とを有する。
The register reallocation method of the present invention is based on an architecture that has load/store instructions between memory registers and no indirect branch instructions. Analyzes the instructions expanded on the memory by this instruction input means, divides the sequence of instructions immediately after the branch instruction and at the branch destination label position to create instruction blocks, and controls the control between the divided instruction blocks. An instruction block dividing means that determines the flow and limits the instruction blocks to be analyzed for equivalence relations, and an instruction block dividing means that investigates the register dependencies between the instruction blocks divided by this instruction block dividing means and determines the register dependencies at the entrance and exit of the instruction blocks. an inter-block register flow analysis means for determining registers; an equivalence relation analysis means for analyzing the state of instruction equivalence relations along the control flow for instruction blocks to be analyzed for equivalence relations limited by the instruction block division means; If there is an unnecessary load instruction from the memory whose equivalence relation has been analyzed by the relation analysis means, register reallocation is performed to ensure there are no conflicts and the unnecessary load instruction is deleted. and an instruction output means for outputting a sequence of instructions whose registers have been reallocated by the means to an instruction storage medium.

〔作用〕[Effect]

本発明のレジスタ再割付は方式では、命令入力手段が命
令格納媒体から命令の並びを入力してメモリ上に展開し
、命令ブロック分割手段が命令入力手段によりメモリ上
に展開された命令を解析し分岐命令の直後と分岐先ラベ
ル位置とで命令の並びを分割して命令ブロックを作成す
るとともに分割した命令ブロック間の制御の流れを求め
て同値関係解析対象の命令ブロックを限定し、ブロック
間レジスタフロー解析手段が命令ブロック分割手段によ
り分割された命令ブロック間のレジスタの依存関係を調
査し命令ブロックの入口および出口で生きているレジス
タを求め、同値関係解析手段が命令ブロック分割手段に
より限定された同値関係解析対象の命令ブロックについ
て制御フローに沿って命令の同値関係の状態を解析し、
レジスタ再割付は手段が同値関係解析手段により同値関
係が解析されたメモリからの不要なロード命令があれば
矛盾がないようにレジスタの再割付けを行って不要なロ
ード命令を削除し、命令出力手段がレジスタ再割付は手
段によるレジスタ再割付は済みの命令の並びを命令格納
媒体に出力する。
In the register reallocation method of the present invention, the instruction input means inputs a sequence of instructions from the instruction storage medium and expands them onto the memory, and the instruction block dividing means analyzes the instructions expanded onto the memory by the instruction input means. The sequence of instructions is divided into instruction blocks immediately after the branch instruction and at the branch destination label position, and the flow of control between the divided instruction blocks is determined to limit the instruction blocks subject to equivalence relationship analysis, and registers between blocks are determined. The flow analysis means investigates the register dependencies between the instruction blocks divided by the instruction block division means and determines registers that are active at the entrance and exit of the instruction block, and the equivalence relation analysis means is limited by the instruction block division means. Analyze the state of equivalence relations of instructions along the control flow for the instruction block to be analyzed for equivalence relations,
For register reallocation, if there is an unnecessary load instruction from the memory whose equivalence relations have been analyzed by the equivalence relation analysis means, the registers are reallocated so that there are no conflicts, the unnecessary load instructions are deleted, and the instruction output means The register reallocation means outputs the sequence of instructions for which register reallocation has been completed to the instruction storage medium.

〔実施例〕〔Example〕

次に、本発明について図面を参照して詳細に説明する。 Next, the present invention will be explained in detail with reference to the drawings.

第1図は、本発明の一実施例に係るレジスタ再割付は方
式の構成を示すブロック図である。本実施例のレジスタ
再割付は方式は、命令人力手段1と、命令ブロック分割
手段2と、ブロック間レジスタフロー解析手段3と、同
値関係解析手段4と、レジスタ再割付は手段5と、命令
出力手段6と、命令展開メモリ7と、複数のブロックテ
ーブル8と、複数の同値関係表9と、ファイル、メモリ
等でなり機械語命令(以下、単に命令という)を格納す
る命令格納媒体10とから構成されている。
FIG. 1 is a block diagram showing the configuration of a register reallocation system according to an embodiment of the present invention. Register reallocation in this embodiment is performed by an instruction manual means 1, an instruction block division means 2, an inter-block register flow analysis means 3, an equivalence relation analysis means 4, a register reallocation means 5, and an instruction output. means 6, an instruction expansion memory 7, a plurality of block tables 8, a plurality of equivalence relation tables 9, and an instruction storage medium 10, which is composed of files, memories, etc., and stores machine language instructions (hereinafter simply referred to as instructions). It is configured.

第2図を参照すると、各ブロックテーブル8は、アドレ
ス順次チェーンと、アドレス順前チェーンと、命令ポイ
ンタと、入口で生きているレジスタと、出口で生きてい
るレジスタと、直先行ブロック数(P)と、直後続ブロ
ンク数(S)と、直先行ブロック数(p>の直先行ブロ
ックポインタと、直後続ブロック数(S)の直後続ブロ
ックポインタと、同値関係表ポインタと、非対象ブロッ
クフラグと、同価関係解析処理済みフラグとから構成さ
れている。各ブロックテーブル8は、ブロックテーブル
起点ポインタからアドレス順にアドレス順次チェーンお
よびアドレス順前チェーンによってチェーニングされて
いる。命令ポインタは、命令展開メモリ7上の命令のア
ドレスまたは命令展開メモリ7上の展開命令内相対オフ
セットでなり、命令展開メモリ7上に展開された命令中
の対応する命令ブロック(以下、単にブロックという)
の先頭命令をポイントしている。直先行ブロックポイン
タは、当該ブロックテーブル8のブロックに制御フロー
上で直先行するブロックのブロックテーブル8をポイン
トしている。直後続ブロックポインタは、当該フ゛ロソ
クテーフ゛ル8のフ゛ロックに制御フロー上で直後続す
るブロックのブロックテーブル8をポイントしている。
Referring to FIG. 2, each block table 8 includes an address sequential chain, an address pre-sequential chain, an instruction pointer, a register alive at the entrance, a register alive at the exit, and the number of immediately preceding blocks (P ), the number of immediately following broncs (S), the immediately preceding block pointer of the immediately preceding block number (p>), the immediately following block pointer of the immediately following block number (S), the equivalence relation table pointer, and the non-target block flag. and an equivalence relationship analysis completed flag.Each block table 8 is chained in address order from the block table starting point pointer by an address sequential chain and an address sequential chain.The instruction pointer is connected to the instruction expansion memory. 7 or a relative offset within the expanded instruction on the instruction expansion memory 7, and the corresponding instruction block in the instruction expanded on the instruction expansion memory 7 (hereinafter simply referred to as a block)
It points to the first instruction. The immediately preceding block pointer points to the block table 8 of the block that immediately precedes the block in the block table 8 in the control flow. The immediately succeeding block pointer points to the block table 8 of the block immediately following the block of the relevant block table 8 on the control flow.

同値関係表ポインタは、当該ブロックテーブル8のブロ
ックが同値関係解析対象のブロック(以下、同値関係解
析対象ブロックという)である場合に同値関係表9をポ
イントしている。非対象ブロックフラグは、同値関係解
析対象外のプロ、りを識別するためのフラグである。同
値関係解析処理済みフラグは、同値関係解析対象ブロッ
クを処理したかどうかを識別するためのフラグである。
The equivalence relation table pointer points to the equivalence relation table 9 when the block in the block table 8 is a block to be analyzed for equivalence relations (hereinafter referred to as a block to be analyzed for equivalence relations). The non-target block flag is a flag for identifying a block that is not subject to equivalence relationship analysis. The equivalence relationship analysis processing completed flag is a flag for identifying whether the block to be analyzed for equivalence relationships has been processed.

同しく、第2図を参照すると、同値関係表9は、同値レ
ジスタと、同値メモリのアドレス(例えば、ペースレジ
スタB2基準)および長さとからなる複数の同値関係情
報で構成されている。
Similarly, referring to FIG. 2, the equivalence relationship table 9 is composed of a plurality of equivalence relationship information consisting of an equivalence register, an address of an equivalence memory (for example, based on pace register B2), and a length.

次に、このように構成された本実施例のレジスタ再割付
は方式の動作について説明する。
Next, the operation of the register reallocation system of this embodiment configured as described above will be explained.

まず、命令入力手段1は、命令格納媒体10から1命令
ずつ命令を入力し、命令展開メモリ7上に展開した後、
命令ブロック分割手段2を呼び出す。
First, the instruction input means 1 inputs instructions one by one from the instruction storage medium 10, expands them onto the instruction expansion memory 7, and then
The instruction block dividing means 2 is called.

命令ブロック分割手段2は、命令コードを解析し、命令
が分岐命令のときにのみブロック分割処理を行う。ブロ
ックとは、命令の並びの中で制御上入口が1つで出口が
1つ、かつ途中に出口以外の分岐がないような単位をい
い、分割されたブロックは、第2図に示すように、ブロ
ックテーブル8が命令ポインタにより命令展開メモリ7
中のブロックの先頭命令をポイントすることによって指
示される。命令ブロック分割手段2は、ブロック分割処
理では、以下の処理2,1〜2.4により分岐命令の直
後と分岐先ラヘル位置とでブロックを分割し、処理2.
5により同値関係解析対象ブロックを限定する。
The instruction block dividing means 2 analyzes the instruction code and performs block dividing processing only when the instruction is a branch instruction. A block is a unit in a sequence of instructions that has one entrance and one exit for control purposes, and there are no branches other than the exit, and the divided blocks are as shown in Figure 2. , the block table 8 is stored in the instruction expansion memory 7 by the instruction pointer.
It is indicated by pointing to the first instruction of the block inside. In the block division process, the instruction block division means 2 divides the block immediately after the branch instruction and at the branch destination Rahel position by the following processes 2.1 to 2.4, and performs process 2.
5 to limit the blocks to be analyzed for equivalence relations.

処虐λユ」電分岐命令の直後の命令を命令ポインタによ
ってポイントするプロ・7クテーブル8をサーチし、す
でにあれば何もしない。なければ、ブロックテーブル8
を1つ作成し、分岐命令の直後の命令をブロックの最初
の命令として命令ポインタを設定し、作成したブロック
テーブル8を命令のアドレス順にアドレス順次チェーン
およびアドレス順前チェーンによって直前および直後の
ブロックテーブル8とチェーニングする。
Search the program table 8 pointing to the instruction immediately after the electric branch instruction using the instruction pointer, and if it already exists, do nothing. If not, block table 8
The instruction pointer is set to the instruction immediately after the branch instruction as the first instruction of the block, and the created block table 8 is created using the address sequential chain and the address sequential chain in the order of the instructions' addresses to create the block table immediately before and after the branch instruction. Chain with 8.

カニ1ユ1:分岐命令が条件分岐命令の場合、条件分岐
命令を含むブロックの先頭命令をポイントするブロック
テーブル8と条件分岐命令の直後の命令をポイントする
ブロックテーブル8とを直先行ブロックポインタおよび
直後続プロ・ツクポインタによって互いにチェーニング
する。ここで、直先行ブロックとは制御フロー上の直前
のブロックをい堕直後続ブロンクとは制御フロー上の直
後のブロックをいう。
Crab 1 Yu 1: When the branch instruction is a conditional branch instruction, the block table 8 pointing to the first instruction of the block containing the conditional branch instruction and the block table 8 pointing to the instruction immediately after the conditional branch instruction are used as the immediately preceding block pointer and Chain with each other by the immediately following program pointer. Here, the immediately preceding block refers to the immediately preceding block on the control flow, and the immediately following block refers to the block immediately following on the control flow.

処理I−1:分岐命令の分岐相対オフセントから下方向
への分岐ならば無条件にブロックテーブル8を作成し、
処理2.1と同様に作成したブロックテーブル8を命令
のアドレス順にアドレス順次チェーンおよびアドレス順
向チェーンによって直前および直後のブロックテーブル
8とチェーニングし、さらに処理2.2と同様に分岐命
令を含むブロックの先頭命令をポイントするブロックテ
ーブル8を制御フロー順に直先行ブロンクポインタおよ
び直後線ブロックポインタによって直先行ブロックおよ
び直後線ブロックのブロンクチ−プル8とチェーニング
する。
Process I-1: If the branch is a downward branch from the branch relative offset of the branch instruction, create block table 8 unconditionally,
The block table 8 created in the same manner as in Process 2.1 is chained with the immediately preceding and succeeding block tables 8 using an address sequential chain and an address forward chain in the order of the addresses of the instructions, and further blocks containing branch instructions are created in the same manner as in Process 2.2. The block table 8 pointing to the first instruction of the block table 8 is chained with the bronch pieces 8 of the immediately preceding block and immediately following block in control flow order using the immediately preceding bronc pointer and the immediately following block pointer.

n↓工土:分岐命令の分岐相対オフセントから上方向へ
の分岐ならば分岐先命令をポイントするブロックテーブ
ル8がないときにのみプロ、クチ−プル8を作成して、
処理2.1と同様に作成したブロックテーブル8を命令
のアドレス順にアドレス順次チェーンおよびアドレス順
向チェーンによって直前および直後のブロック九−ブル
8とチェーニングし、さらにブロックテーブル8を新し
く作成しなかった場合も含めて、処理2.2と同様に分
岐命令を含むブロックの先頭命令をポイントするブロッ
クテーブル8を制御フロー順に直先行ブロックポインタ
および直後線ブロックポインタによって直先行ブロック
および直後線ブロックのプロンクチ−プル8とチェーニ
ングする。
n↓Works: If the branch instruction is an upward branch from the branch relative offset, create a professional block table 8 only when there is no block table 8 pointing to the branch destination instruction.
When the block table 8 created in the same manner as in process 2.1 is chained with the immediately preceding and succeeding block 9-bull 8 in the address order of the instructions using the address sequential chain and the address forward chain, and a new block table 8 is not created. Similarly to Process 2.2, the block table 8 that points to the first instruction of the block containing the branch instruction is updated in the order of the control flow using the immediately preceding block pointer and the immediately following block pointer. Chain with 8.

!!I!JLL−i:分岐命令の分岐相対オフセントか
ら上方向への分岐ならば、ループとなる可能性があるの
で、分岐命令を含むブロックからアドレスの逆順にブロ
ックをたどり、分岐先のブロックまでの全ブロックを同
値関係解析対象外のブロックとして、各ブロックテーブ
ル8に非対象ブロックフラグを立てる。
! ! I! JLL-i: If it is an upward branch from the branch relative offset of a branch instruction, there is a possibility of a loop, so trace the blocks in the reverse order of addresses from the block containing the branch instruction, and check all blocks up to the branch destination block. As a block that is not subject to equivalence relation analysis, a non-target block flag is set in each block table 8.

命令入力手段1と命令ブロック分割手段2との処理を繰
り返し、全命令について処理を行うと、ブロックテーブ
ル8単位の制御フローができあがり、同時に制御フロー
上でループに含まれない同値関係解析対象ブロックが非
対象ブロックフラグにより認識可能となる。
By repeating the processing by the instruction input means 1 and the instruction block division means 2 and processing all the instructions, a control flow of 8 units of block tables is completed, and at the same time, blocks to be analyzed for equivalence relationships that are not included in the loop on the control flow are It can be recognized by the non-target block flag.

次に、ブロック間レジスクフロー解析手段3は、ブロッ
ク間のレジスタの依存関係(ブロック間にまたがってそ
の値が引き継がれるか否かの関係、レジスタ上の値が引
き継がれている間そのレジスタは「生きている」という
)を調べ、ブロック間のレジスタフローを表すために、
全ブロックに対して各ブロックの入口で生きているレジ
スタおよび各ブロックの出口で生きているレジスタをブ
ロックテーブル8に設定する。詳しくは、ブロック間レ
ジスタフロー解析手段3は、処理3.1を行った後、制
御フローの逆順に処理3.2〜3.3を繰り返す。
Next, the inter-block register flow analysis means 3 determines the dependency relationship of registers between blocks (relationship of whether or not the value is inherited across blocks, and whether the register is "active" while the value on the register is inherited). ) to represent the register flow between blocks.
Registers that are active at the entrance of each block and registers that are active at the exit of each block are set in the block table 8 for all blocks. Specifically, after performing process 3.1, the inter-block register flow analysis means 3 repeats processes 3.2 to 3.3 in the reverse order of the control flow.

処理1エエ:制御フロー上の最後のブロックのブロック
テーブル8に、ブロックの出口で生きているレジスタを
設定する。
Process 1d: Set a register that is alive at the exit of the block in the block table 8 of the last block on the control flow.

mユ1:以下の条件■および■のいずれがを満たすレジ
スタを、ブロックの入口で生きているレジスタとして、
ブロックテーブル8に設定する。
mU1: Assign the register that satisfies either of the following conditions ■ and ■ to the register that is alive at the entrance of the block.
Set in block table 8.

■ ブロックの出口で生きていて、そのプロ7りで定義
されていない。
■ Lives at the exit of the block and is not defined by its professional seven.

■ ブロック内で最初に現れたレジスタアクセス命令が
レジスタ参照命令である。
■ The first register access instruction that appears in a block is a register reference instruction.

処皿主−主:以下の条件■を満たすレジスタを、ブロッ
クの出口で住きているレジスタとして、ブロックテーブ
ル8に設定する。
Processing plate master - master: A register that satisfies the following condition (1) is set in the block table 8 as a register that resides at the exit of the block.

■ 直後続ブロンクの入口で生きている。■ It is alive at the entrance of the bronc immediately following it.

次に、同値間係解析手段4は、第2図に示すようにブロ
ックテーブル8から同値関係表ポインタによってチェー
ニングされた同値関係表9を使って、制御フロー上にメ
モリとレジスタとの間の同値関係を解析する(ここでい
う同値関係とは、命令実行中のある時点でメモリの内容
とレジスタの内容とが同じ値である関係のことであり、
一般にメモリからレジスタへのロード命令およびレジス
タからメモリへのストア命令によって関係付けられる)
。詳しくは、同値関係解析手段4は、ブロックテーブル
起点ポインタから制御フロー順にブロックテーブル8を
たどり、制御フロー上で−固まりになった同値関係解析
対象ブロックの集合の1つずつに対して、処理4.1を
実行した後、処理4.4でブロックBが見つからなくな
るまで、処理4.2〜4.4を繰り返し実行する。
Next, the equivalence relation analysis means 4 uses the equivalence relation table 9 chained by the equivalence relation table pointer from the block table 8 as shown in FIG. Analyze relationships (equivalence relationships here are relationships in which the contents of memory and the contents of registers have the same value at a certain point during instruction execution,
(commonly related by memory-to-register load and register-to-memory store instructions)
. Specifically, the equivalence relationship analysis means 4 traces the block table 8 in the order of the control flow from the block table starting point pointer, and performs the process 4 on each of the sets of blocks to be analyzed for equivalence relationships that have formed a cluster on the control flow. After executing .1, processes 4.2 to 4.4 are repeatedly executed until block B is not found in process 4.4.

処理(工上:制御フロー順にブロックテーブル8をたど
り、以下の条件■および■のいずれかを満たすブロック
Bをさがし、同値関係表9を生成して初期化し、ブロッ
クテーブル8から同値関係表ポインタによってチェーニ
ングする。
Processing (engineering: Traverse block table 8 in order of control flow, search for block B that satisfies either of the following conditions ■ and ■, generate and initialize equivalence relation table 9, and use equivalence relation table pointer Chaining.

■ 直先行ブロックがない(直先行プロ・ツク数が0)
■ There is no immediate preceding block (the number of immediate preceding blocks is 0)
.

■ すべての直先行ブロックが同値関係解析対象外のブ
ロック(非対象ブロックフラグが立っている)または同
値関係解析処理済みのブロック(同値関係解析処理済み
フラグが立っている)である。
■ All immediately preceding blocks are blocks that are not subject to equivalence relationship analysis (the non-target block flag is set) or blocks that have been subjected to equivalence relationship analysis (the equivalence relationship analysis completed flag is set).

1L4ff工:ブロソクB内の全命令に対し、制御順に
各命令の種別によって以下の■、■および■のいずれか
の処理を行う。
1L4ff engineering: Performs one of the following processes (1), (2), and (2) for all instructions in block B, depending on the type of each instruction in control order.

1 ロードt の 人 ロード元のメモリのアドレスおよび長さ(命令によって
決まる)が同値関係表9に設定されている場合(=ロー
ド元のメモリに対して同値関係が付いている場合)、レ
ジスタ再割付は手段5を呼び出す。それ以外の場合、同
値関係表9にロード元のメモリのアドレス、長さおよび
ロード先のレジスタを設定する。
1 If the address and length (determined by the instruction) of the load source memory for load t are set in equivalence relation table 9 (= if an equivalence relationship is attached to the load source memory), register reloading is performed. The allocation calls means 5. In other cases, the address and length of the load source memory and the load destination register are set in the equivalence relation table 9.

■ ストアt の8人 ストア先のアドレスおよび長さで示されるメモリのどこ
か一部に対してでも同値関係表9に設定されている場合
(=ストア先のメモリに対して一部でも同値関係が付い
ている場合)、同値関係表9からその同値関係情報を削
除する。さらに、同値関係表9にストア先のメモリのア
ドレス、長さおよびストア元のレジスタを設定する。
■ If the equivalence relation table 9 is set for any part of the memory indicated by the address and length of the 8-person storage destination of store t (= equivalence relation for even part of the memory of the storage destination) ), the equivalence relationship information is deleted from the equivalence relationship table 9. Furthermore, the address and length of the storage destination memory and the storage source register are set in the equivalence relation table 9.

■ ロード  でもストア  でもない 4何もしない
■ Neither load nor store 4 Do nothing.

文す!」よ−」−ニブロックBの直後続ブロックのうち
の同値関係解析対象ブロックに、以下のように同値関係
情報を引き継く。
Write! ``Yo-''-The equivalence relationship information is inherited to the block to be analyzed for equivalence relationships among the blocks immediately following block B as follows.

■ ブロックBの直後続ブロックのブロックテーブル8
の同値関係表ポインタが空ポインタならば、同値関係表
9を生成してブロックテーブル8から同値関係表ポイン
タによってチェーニングし、ブロックBの同値関係表9
をコピーする。
■ Block table 8 of the block immediately following block B
If the equivalence relation table pointer of block B is a null pointer, an equivalence relation table 9 is generated and chained by the equivalence relation table pointer from the block table 8, and the equivalence relation table 9 of block B is created.
Copy.

■ フロックBの直後続ブロックのブロックテーブル8
の同値関係表ポインタが空ポインタでなければ、その同
値関係表9の同値関係情報のうちのフロックBの同値関
係表9の内容と異なる同値関係情報は削除する。
■ Block table 8 of the block immediately following block B
If the equivalence relationship table pointer of is not a null pointer, the equivalence relationship information that is different from the content of the equivalence relationship table 9 of the block B out of the equivalence relationship information of the equivalence relationship table 9 is deleted.

■ 同値関係解析処理済みフラグを立てる。■ Set the equivalence relationship analysis processed flag.

処理↓2工:ブロソクBの直後続ブロックのうちの以下
の条件■および■をすべて満たすブロックをブロックB
とする。
Processing ↓ 2nd step: Among the blocks immediately following Block B, block B satisfies all of the following conditions ■ and ■
shall be.

■ すべての直先行ブロンクが同値関係解析対象外のブ
ロックまたは同値関係解析処理済みのブロックである。
■ All immediately preceding broncs are blocks that are not subject to equivalence relation analysis or blocks that have undergone equivalence relation analysis.

■ 同値関係解析対象ブロックである。■ It is a target block for equivalence relation analysis.

条件■および■を満たすブロックがなければ、ブロック
Bの直後続ブロックの直先行ブロックから、以上の条件
■および■に加えて以下の条件■および■を満たすブロ
ックをブロックBとする。
If there is no block that satisfies conditions (2) and (2), a block that satisfies the following conditions (2) and (2) in addition to the above conditions (2) and (2) is designated as block B, starting from the immediately preceding block of the block immediately following block B.

■ フロックBでない。■ It is not Flock B.

■ 同値関係解析未処理のブロックである。■ It is a block that has not been subjected to equivalence relation analysis.

ブロックBの直後続ブロックの直先行ブロックに条件■
〜■を満たすブロックがなければ、さらに条件■〜■を
満たすブロックの直先行ブロックをたどって、条件■〜
■を満たすブロックをさがし、ブロックBとする。この
結果、ブロックBの直先行ブロックに1つでも同値関係
解析対象外のフロックがあった場合、フロックBのブロ
ックテーブル8の同値関係表ポインタが空ポインタなら
ば、同値関係表9を生成して初期化し、ブロックテーブ
ル8から同値関係表ポインタによってチェニングする。
Condition ■ for the block immediately preceding the block immediately following block B
If there is no block that satisfies ~■, further follow the block that immediately precedes the block that satisfies condition ■~■, and find condition ■~
Find a block that satisfies (1) and call it block B. As a result, if there is even one flock that is not subject to equivalence relation analysis in the immediately preceding block of block B, and if the equivalence relation table pointer of the block table 8 of block B is an empty pointer, the equivalence relation table 9 is generated. It is initialized and chained from the block table 8 using the equivalence relation table pointer.

ブロックBのブロックテーブル8の同値関係表ポインタ
が空ポインタでなければ、その同値関係表9を初期化す
る。
If the equivalence relation table pointer of the block table 8 of block B is not a null pointer, the equivalence relation table 9 is initialized.

レジスタ再割付は手段5は、同値関係解析手段4から呼
び出されると、同値関係を引き継いで不要なロード命令
を削除するために、以下の処理51〜5.3により、レ
ジスタの再割付けを試みる。ここで、現在処理中のブロ
ックをBとし、メモリMとレジスタR1とに同値関係が
付いているとする。また、メモリMからレジスタR2へ
のロード命令をし、メモリMとレジスタR1との同値関
係を付けた命令をSi  (i=1.・・・、nun≧
1)、ブロックBの先頭からロード命令しの直前の命令
までの区間をα、ロード命令しの直後の命令からブロッ
クBの最後までの区間をβとする。
When the register reallocation means 5 is called by the equivalence relation analysis means 4, it tries to reallocate the registers through the following processes 51 to 5.3 in order to take over the equivalence relations and delete unnecessary load instructions. Here, it is assumed that the block currently being processed is B, and that memory M and register R1 have an equivalence relationship. Also, a load instruction is executed from memory M to register R2, and an instruction with an equivalence relationship between memory M and register R1 is written as Si (i=1..., nun≧
1) Let α be the interval from the beginning of block B to the instruction immediately before the load instruction, and β be the interval from the instruction immediately after the load instruction to the end of block B.

さらに、ロード命令しで参照可能なレジスタRに対し、
ロード命令し以前でレジスタRの生きている区間γ (
R)とロード命令し以降でレジスタRの生きている区間
δ (R)とは、それぞれ以下のように求められる(た
だし、区間γ (R)および区間δ(R)は同値関係解
析対象ブロックの範囲内とする)。
Furthermore, for register R that can be referenced with a load instruction,
The active section γ (
R) and the active interval δ (R) of the register R after the load command is obtained as follows (however, the interval γ (R) and the interval δ (R) are the blocks of the target block for equivalence relation analysis. (within range).

IIT (R)のン゛め ■ 区間α内にレジスタRの定義命令(ロード命令、演
算命令等)があれば、区間α内の最後のレジスタRの定
義命令以降の区間のうちの最後のレジスタRの参照命令
までの区間を区間γ (R)とする。区間α内の最後の
レジスタRの定義命令以降の区間にレジスタRの参照命
令がなければ、レジスタRの定義命令のみを区間γ (
R)とする。
For IIT (R) ■ If there is a definition instruction for register R (load instruction, operation instruction, etc.) in interval α, the last register in the interval after the last definition instruction for register R in interval α Let the interval up to the reference instruction of R be an interval γ (R). If there is no register R reference instruction in the interval after the last register R definition instruction in the interval α, only the register R definition instruction is transferred to the interval γ (
R).

■ 区間α内にレジスタRの定義命令がなければ、ブロ
ックBの直先行ブロックPBi  (i=1゜・・・、
n)内の命令を制御の逆順にたどり、最初に見つかった
レジスタRの定義命令以降のロード命令りまでの区間の
うちの最後のレジスタRの参照命令までの区間をそれぞ
れγi  (R)とすると、区間γ1  (R)から区
間yn(R)までのすべての区間を合わせた区間をγ 
(R)とする。それぞれレジスタRの参照命令がない場
合は■と同様である。直先行ブロックPBiにレジスタ
Rの定義命令がなければ、さらに直先行ブロックPBi
の直先行ブロックをたどって同様に求める。
■ If there is no definition instruction for register R within the interval α, the immediately preceding block PBi of block B (i=1°...,
n) in the reverse order of control, and let γi (R) be the interval from the first definition instruction for register R found to the load instruction and to the last reference instruction for register R. , the interval that is the sum of all the intervals from interval γ1 (R) to interval yn (R) is γ
(R). If there is no instruction to refer to register R, the procedure is the same as ■. If there is no definition instruction for register R in the immediately preceding block PBi, then the immediately preceding block PBi
Obtain in the same way by tracing the immediately preceding block.

日δ(R)の)゛め ■ 区間β内にレジスタRの定義命令があれば、区間β
内の最初のレジスタRの定義命令以前の区間のうちの最
後のレジスタRの参照命令までの区間をδ (R)とす
る。区間β内の最初のレジスタRの定義命令以前にレジ
スタRの参照命令がなければ、δ(R)=φ(空)とす
る。
) of day δ(R) ■ If there is a definition instruction for register R within interval β, then interval β
Let δ(R) be the interval up to the last reference instruction for register R in the interval before the definition instruction for the first register R in the register R. If there is no reference instruction for register R before the first definition instruction for register R within interval β, δ(R)=φ (empty).

■ 区間β内にレジスタRの定義命令がなく、ブロック
Bの出口でレジスタRが生きていなければ、区間β内の
最後のレジスタRの参照命令までの区間を6 (R)と
する。区間β内にレジスタRの参照命令がなければ、δ
(R)=φとする。
(2) If there is no definition instruction for register R within interval β and register R is not alive at the exit of block B, the interval up to the last reference instruction for register R within interval β is set to 6 (R). If there is no instruction to reference register R within interval β, δ
(R)=φ.

■ 区間β内にレジスタRの定義命令がなく、ブロック
Bの出口でレジスタRが生きていれば、ブロックBの直
後続ブロックのうちの同値関係解析対象ブロックSBj
  (j=1. ・=、m:m≧1)内の命令を制御順
にたどり、ロード命令りから最初に見つかったレジスタ
Rの定義命令までの区間のうちの最後のレジスタRの参
照命令までの区間をそれぞれδj  (R)とすると、
区間δ1  (R)から区間δm (R)までのすべて
の区間を合わせた区間をδ (R)とする。それぞれレ
ジスタRの参照命令がない場合は、δj  (R) =
φとする。
■ If there is no definition instruction for register R within the interval β and register R is alive at the exit of block B, the block SBj to be analyzed for equivalence relations among the blocks immediately following block B
Follow the instructions in (j=1. ・=, m: m≧1) in control order, and trace the instructions from the load instruction to the first register R reference instruction found in the interval to the last register R reference instruction. Letting each interval be δj (R),
Let δ (R) be the sum of all the intervals from the interval δ1 (R) to the interval δm (R). If there is no reference instruction for register R, δj (R) =
Let it be φ.

同値関係解析対象ブロックSBjにレジスタRの定義命
令がなく同値関係解析対象ブロックSBjの出口でレジ
スタRが生きていれば、さらに同値関係解析対象ブロッ
クSBjの直後続ブロックのうちの同値関係解析対象ブ
ロックをたどって同様に求める。同値関係解析対象ブロ
ックSBjの出口でレジスタRが生きていなければ、同
値関係解析対象ブロックSBj内の最後のレジスタRの
参照命令までの区間をδj  (R)とする。
If there is no definition instruction for register R in the block SBj to be analyzed for equivalence relations and register R is alive at the exit of block SBj to be analyzed for equivalence relations, then the block to be analyzed for equivalence relations among the blocks immediately following the block to be analyzed for equivalence relations SBj. Find it in the same way. If the register R is not alive at the exit of the block SBj to be analyzed for equivalence relations, the interval up to the last register R reference instruction in the block SBj to be analyzed for equivalence relations is set as δj (R).

mユ」工:ロード命令しで定義したレジスタR2をレジ
スタR1に置き換えることによって、ロード命令りを削
除しようと試みる。以下の条件■を満たした場合、区間
δ(R2)内のレジスタR2の参照命令におけるレジス
タR2をレジスタR1に変更して、ロード命令りを削除
する。
``myu'' engineering: Attempts to delete the load instruction by replacing register R2 defined in the load instruction with register R1. If the following condition (2) is satisfied, register R2 in the reference instruction for register R2 in interval δ(R2) is changed to register R1, and the load instruction is deleted.

■ ロード命令して定義されたレジスタR2が生きてい
る間、レジスタR1の定義命令がない。
■ While register R2 defined by a load instruction is alive, there is no definition instruction for register R1.

すなわち、 [δ(R2)幹レジスタR1の定義命令コ条件■を満た
してロード命令りを削除した場合、区間δ(R2)がブ
ロックB以外のブロックにまたがっている場合は、また
がったブロックとの間のレジスタの依存関係を調査し直
して、各プロ。
In other words, if the load instruction is deleted while satisfying the [δ(R2) Definition instruction condition for trunk register R1], and if the interval δ(R2) spans a block other than block B, the connection with the spanned block is Reexamine the register dependencies between each pro.

りの入口および出口で生きているレジスタの情報を各ブ
ロックテーブル8に再設定する。
The information of the live registers is reset in each block table 8 at the entrance and exit of the block.

mユ主:処理5.1のレジスタR2からレジスタR1へ
の置換によるロード命令しの削除が不可能だった場合、
ロード命令して同値関係が付いているレジスタR1をレ
ジスタR2に置き換えることによって、ロード命令りを
削除しようと試みる。以下の条件■を満たした場合、区
間(γ (R1)+δ(R1)l内のレジスタR1の定
義/参照命令のレジスタR1をレジスタR2に変更して
、ロード命令りを削除する。
myu main: If it is impossible to delete the load instruction by replacing register R2 with register R1 in process 5.1,
An attempt is made to eliminate the load instruction by replacing register R1 with an equivalence relationship with register R2. If the following condition (2) is satisfied, the register R1 of the definition/reference instruction for register R1 in the interval (γ (R1) + δ(R1)l) is changed to register R2, and the load instruction is deleted.

■ 命令Siで同値関係を付けたレジスタR1が生きて
いる間で、かつロード命令りで定義したレジスタR2が
生きている間取外で、レジスタR2の定義/参照命令が
ない。すなわち、[γ(R1)+δ (R1)−δ (
R2)幹しジスクR2の定義/参照命令〕 条件■を満たしてロード命令りを削除した場合、区間(
γ (R1)+δ(R1)lがブロックB以外のブロッ
クにまたがっている場合は、またがったブロックとの間
のレジスタの依存関係を調査し直して、各ブロックの入
口および出口で生きているレジスタの情報を各ブロック
テーブル8に再設定する。
(2) While the register R1 with the equivalence relationship in the instruction Si is alive and the register R2 defined by the load instruction is alive, it is removed, and there is no definition/reference instruction for the register R2. That is, [γ(R1)+δ(R1)−δ(
R2) Definition/reference command of main disk R2] If the condition ■ is satisfied and the load command is deleted, the section (
If γ (R1) + δ (R1)l spans a block other than block B, re-examine the register dependencies with the spanned block and check the registers that are alive at the entrance and exit of each block. information is reset in each block table 8.

火星】ユニ:処理5.2のレジスタR1からレジスタR
2への置換によるロード命令しの削除も不可能だった場
合、レジスタの再割付けは行わない。
Mars] Uni: Processing 5.2 register R1 to register R
If it is also impossible to delete the load instruction by replacing it with 2, the registers are not reallocated.

命令出力手段6は、同値関係解析対象の全ブロックに関
して同値関係解析手段4とレジスタ再割付は手段5とに
よって最適化を行った後、命令を格納してあった任意の
命令格納媒体10にレジスタ再割付は済みの命令の並び
を出力する。
The instruction output means 6 optimizes all the blocks to be analyzed for equivalence relations by the equivalence relation analysis means 4 and the register reallocation means 5, and then outputs the registers to any instruction storage medium 10 in which instructions have been stored. Outputs the list of instructions that have been reallocated.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明は、命令列の側御移行に沿っ
て命令列を解析し、命令のレジスタに関する依存関係お
よびメモリ・レジスタ間の同値関係の状態を調査してレ
ジスタの再割付けを行い、不要なロード命令を削除する
こと乙こより、オブジェクトプログラムのサイズを縮小
でき、実行スピードも向上させることができるという効
果がある。
As explained above, the present invention analyzes an instruction sequence along the sideward transition of the instruction sequence, investigates the dependencies of instructions on registers and the state of equivalency relationships between memory registers, and reallocates registers. By deleting unnecessary load instructions, the size of the object program can be reduced and the execution speed can be improved.

また、機械語命令に対して適用されるので、同一アーキ
テクチャ上のコンパイラに対して汎用的に適用すること
が可能であり、さらにコンパイラが出力したオブジェク
トプログラムに対しても適用可能になるという効果があ
る。
In addition, since it is applied to machine language instructions, it can be applied universally to compilers on the same architecture, and it can also be applied to object programs output by compilers. be.

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

第1図は本発明の一実施例に係るレジスタ再割付は方式
の構成を示す回、 第2図は第1図中の命令展開メモリ、ブロックテーブル
および同値関係表の内容を示す図である。 図において、 1・・・命令入力手段、 2・・・命令ブロック分割手段、 3・・・ブロック間レジスタフロー解析手段、4・・・
同値関係解析手段、 5・・・レジスタ再割付は手段、 6・・・命令出力手段、 7・・・命令展開メモリ、 8・・・ブロックテーブル、 9・・・同値関係表、 10・・命令格納媒体である。
FIG. 1 is a diagram showing the configuration of a register reallocation method according to an embodiment of the present invention, and FIG. 2 is a diagram showing the contents of the instruction expansion memory, block table, and equivalence relationship table in FIG. 1. In the figure, 1... instruction input means, 2... instruction block division means, 3... inter-block register flow analysis means, 4...
Equivalence relationship analysis means, 5...Register reallocation means, 6...Instruction output means, 7...Instruction expansion memory, 8...Block table, 9...Equivalence relationship table, 10...Instruction It is a storage medium.

Claims (1)

【特許請求の範囲】 メモリ・レジスタ間のロード/ストア命令をもち間接分
岐命令をもたないアーキテクチャ上において、 命令格納媒体から命令の並びを入力してメモリ上に展開
する命令入力手段と、 この命令入力手段によりメモリ上に展開された命令を解
析し分岐命令の直後と分岐先ラベル位置とで命令の並び
を分割して命令ブロックを作成するとともに分割した命
令ブロック間の制御の流れを求めて同値関係解析対象の
命令ブロックを限定する命令ブロック分割手段と、 この命令ブロック分割手段により分割された命令ブロッ
ク間のレジスタの依存関係を調査し命令ブロックの入口
および出口で生きているレジスタを求めるブロック間レ
ジスタフロー解析手段と、前記命令ブロック分割手段に
より限定された同値関係解析対象の命令ブロックについ
て制御フローに沿って命令の同値関係の状態を解析する
同値関係解析手段と、 この同値関係解析手段により同値関係が解析されたメモ
リからの不要なロード命令があれば矛盾がないようにレ
ジスタの再割付けを行って不要なロード命令を削除する
レジスタ再割付け手段と、このレジスタ再割付け手段に
よるレジスタ再割付け済みの命令の並びを命令格納媒体
に出力する命令出力手段と を有することを特徴とするレジスタ再割付け方式。
[Scope of Claims] An instruction input means for inputting a sequence of instructions from an instruction storage medium and expanding them onto memory in an architecture that has load/store instructions between memory and registers but does not have indirect branch instructions; Analyzes the instructions expanded on the memory by the instruction input means, divides the sequence of instructions immediately after the branch instruction and at the branch destination label position, creates instruction blocks, and determines the flow of control between the divided instruction blocks. An instruction block dividing means that limits the instruction blocks to be analyzed for equivalence relations, and a block that investigates register dependencies between instruction blocks divided by this instruction block dividing means and finds registers that are alive at the entrance and exit of the instruction block. an equivalence relation analysis means for analyzing the state of instruction equivalence relations along the control flow for the instruction block to be analyzed for equivalence relations limited by the instruction block division means; A register reallocation means that reallocates registers and deletes unnecessary load instructions to avoid conflicts if there is an unnecessary load instruction from memory whose equivalence relationship has been analyzed, and register reallocation by this register reallocation means. 1. A register reallocation method comprising: instruction output means for outputting a sequence of completed instructions to an instruction storage medium.
JP12347490A 1990-05-14 1990-05-14 Register reallocating system Pending JPH0421031A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12347490A JPH0421031A (en) 1990-05-14 1990-05-14 Register reallocating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12347490A JPH0421031A (en) 1990-05-14 1990-05-14 Register reallocating system

Publications (1)

Publication Number Publication Date
JPH0421031A true JPH0421031A (en) 1992-01-24

Family

ID=14861524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12347490A Pending JPH0421031A (en) 1990-05-14 1990-05-14 Register reallocating system

Country Status (1)

Country Link
JP (1) JPH0421031A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6325374A (en) * 1986-02-11 1988-02-02 Nippon Denso Co Ltd Ignition device for internal combustion engine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6325374A (en) * 1986-02-11 1988-02-02 Nippon Denso Co Ltd Ignition device for internal combustion engine

Similar Documents

Publication Publication Date Title
KR101360512B1 (en) Register allocation with simd architecture using write masks
JP2001147819A (en) Optimizing device and recording medium
JPH01121938A (en) Object generating system
JP2500079B2 (en) Program optimization method and compiler system
EA012912B1 (en) Controlling task execution
JPS6325733A (en) Compiler processing system
US7530063B2 (en) Method and system for code modification based on cache structure
JP3318051B2 (en) Translation processing method
JPH0421031A (en) Register reallocating system
JPH01118931A (en) Program conversion system
EP3997593B1 (en) A streaming compiler for automatic adjoint differentiation
US5369774A (en) Method and apparatus for handling array type data in a data driven type information processor
JPH03135630A (en) Instruction scheduling system
JPH04141737A (en) Register re-assignment system
KR100912114B1 (en) A Memory Assignment Method for X-Y Data Transfer
JP3511935B2 (en) File writing method in multi-thread program
JPH03127229A (en) Register reallocating device
JPH09106351A (en) Variable renaming method
JP2522372B2 (en) Data driven computer
JPH0229867A (en) Design execution control system
JPH0460721A (en) Language processing system directed to object
JPS63163636A (en) Executing system for parallel processing
JPS6116362A (en) Vector processor control processing system
JPS5846439A (en) Program editing method of computer
JP2003005982A (en) Method and device for rearranging call instruction and program