JPS63186333A - Scheduling processing system for instruction to local branching instruction - Google Patents

Scheduling processing system for instruction to local branching instruction

Info

Publication number
JPS63186333A
JPS63186333A JP1796187A JP1796187A JPS63186333A JP S63186333 A JPS63186333 A JP S63186333A JP 1796187 A JP1796187 A JP 1796187A JP 1796187 A JP1796187 A JP 1796187A JP S63186333 A JPS63186333 A JP S63186333A
Authority
JP
Japan
Prior art keywords
instruction
branch
instructions
local
group
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
JP1796187A
Other languages
Japanese (ja)
Inventor
Takashi Kaneko
孝 金子
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 JP1796187A priority Critical patent/JPS63186333A/en
Publication of JPS63186333A publication Critical patent/JPS63186333A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To shorten the program executing time in a computer system by carrying out the scheduling process of an instruction after regarding a group of instruction contained in an effect range as an instruction based on the information added to a subject code. CONSTITUTION:A syntax structure analyzing part 21 of a compiler 2 read a source program 1 and produces an intermediate text 24. A code generating part 22 reads the text 24 and produces an object code 25 added with the information on an effective range of the local branches. An instruction scheduling part 23 reads said code 25 and performs a scheduling process of an instruction after defining a group of instructions kept in said effective range as an instruction and rearranges the instruction for production of an object code 3. Thus the instructions are rearranged so that the conflicts of registers are decreased and the fixed waiting time is reduced. Therefore the program executing time is shortened in a computer system where instructions are carried out by a pipeline system.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はオブジェクトコードの生成における命令のスケ
ジューリング処理方式に関し、特に局所的分岐命令があ
るときの命令のスケジューリング処理に関する。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to an instruction scheduling processing method in object code generation, and particularly to instruction scheduling processing when there is a local branch instruction.

(・従来の技術) 命令をパイプライン方式で実行する計算機システムにお
いては、一般にレジスタの確定待ち時間を短縮するよう
に命令のスケジュールを行えば行う#まど、実行時間を
短縮できる。
(Prior Art) In a computer system that executes instructions in a pipeline manner, the execution time can generally be shortened by scheduling the instructions so as to shorten the waiting time for register confirmation.

一方、従来のコンパイラは分岐命令があると、その分岐
が局所的であるか否かに関係なく、その分岐命令を飛び
越えて並び換えることは行わないように構成されていた
On the other hand, conventional compilers are configured so that when there is a branch instruction, the reordering does not jump over the branch instruction, regardless of whether the branch is local or not.

この免め、例えば第5図に示すように従来技術によるス
ケジューリング処理を実行すると、結果的にLoad命
令61の結果を格納するレジスタReg1の内容を直後
のCompare命令62で参照しようとし2ているた
めに、Reglに関してレジスタ競合が起こり、レジス
タの確定待ちが生じている。また、Add命令67の結
果を格納するレジスタReg2の内容を、直後の5to
re命令68で参照しようとしているために、同様にR
eg2に関してレジスタの確定待ちが生じる。
For example, when the scheduling process according to the prior art is executed as shown in FIG. In addition, a register conflict occurs regarding Regl, resulting in a wait for register confirmation. Also, the contents of register Reg2 that stores the result of Add instruction 67 are stored in the register 5to immediately after.
Similarly, R
There is a wait for register confirmation regarding eg2.

(発明が解決しようとする問題点) 上述した従来技術によるコンパイラの命令スケジューリ
ング処理では、局所的な分岐であっても分岐命令がある
と、その命令を飛び越えて命令を並べ換えることはでき
ないため、プログラムの実行性能を十分に引出せないと
いう欠点がある。
(Problems to be Solved by the Invention) In the instruction scheduling process of the compiler according to the conventional technology described above, if there is a branch instruction even if it is a local branch, it is not possible to jump over that instruction and reorder the instructions. The drawback is that the execution performance of the program cannot be brought out to the fullest.

本発明の目的は、命令をパイプライン方式で実行する計
算機システムに対してノースプログラムからオブジェク
トコードを生成するコンパイラを対象とし、中間テキス
トからオブジェクトコードをを生成する場合には一つの
中間テキストから生成される命令群に分岐命令を含ませ
、その分岐先がその命令群のなかのいずれかの命令、ま
たは最後の命令の次の命令であるならば、その分岐命令
を局所的分岐命令とし、局所的分岐命令、および分岐命
令と分岐命令分岐先命令との間にある命令群を局所的分
岐命令の有効範囲とするとき、局所的分岐命令の有効範
囲内にあるか否かの情報を付加してオブジェクトコード
を生成し、生成されたオブジェクトコードをもとに一連
の局所的分岐命令の有効範囲内にある命令群を一つの命
令とみなして命令のスケジューリングを行うとと【よっ
て上記欠点を除去し、プログラムの実行性能を十分に引
出すことができるように構成した局所的分岐命令に対す
る命令のスケジューリング処理方式を提供するととKあ
る。
An object of the present invention is to use a compiler that generates object code from a north program for a computer system that executes instructions in a pipelined manner. If a branch instruction is included in a group of instructions to be executed, and the branch destination is any instruction in the instruction group or the instruction following the last instruction, that branch instruction is considered a local branch instruction, and the branch instruction is a local branch instruction. When setting a local branch instruction and a group of instructions between the branch instruction and the branch destination instruction as the valid range of the local branch instruction, information on whether or not it is within the valid range of the local branch instruction is added. [Thus, the above-mentioned disadvantages are eliminated. However, the present invention provides an instruction scheduling processing method for local branch instructions that is configured to fully exploit program execution performance.

(問題点を解決するための手段) 本発明による局所的分岐命令に対する命令のスケジュー
リング処理方式は、構文解析部と、コ−ド生成部と、命
令スケジューリング部とを具・備して構成したものであ
る。
(Means for Solving the Problems) The instruction scheduling processing method for local branch instructions according to the present invention includes a syntax analysis section, a code generation section, and an instruction scheduling section. It is.

構文解析部は、高級言語が記述されたソースプログラム
を読込み、構文を解析して中間テキストを生成するため
のものである。
The syntactic analysis unit reads a source program written in a high-level language, analyzes the syntax, and generates intermediate text.

コード生成部は、構文解析部により生成された中間テキ
ストからオブジェクトコードを生成する場合て中間テキ
ストの一つから生成された命令群中に分岐命令を含ませ
、分岐命令の分岐先が命令群中のいずれかの命令か、ま
たは最後の命令の次の命令であるならば、分岐命令を局
所的分岐命令とし、局所的分岐命令ンよび分岐命令と分
岐命令の分岐先の命令との間にある命令群を局所的分岐
命令の有効範囲とするとき、局所的分岐命令の有効範囲
内にあるか否かの情報を付加してオブジェクトコードを
生成するためのものである。
When generating object code from the intermediate text generated by the syntax analysis unit, the code generation unit includes a branch instruction in the instruction group generated from one of the intermediate texts, and the branch destination of the branch instruction is included in the instruction group. or the instruction following the last instruction, the branch instruction is considered a local branch instruction; When a group of instructions is set as the effective range of a local branch instruction, information as to whether or not the instruction group is within the effective range of the local branch instruction is added to generate an object code.

命令スケジューリング部は、コード生成部により生成さ
れたオブジェクトコードをもとに一連の局所的分岐命令
の有効範囲内にある命令群を一つの命令とみなし、命令
のスケジューリングを行うためのものである。
The instruction scheduling unit is for scheduling instructions by regarding a group of instructions within the effective range of a series of local branch instructions as one instruction based on the object code generated by the code generation unit.

(実施例) 次に、本発明について図面を参照して説明する。(Example) Next, the present invention will be explained with reference to the drawings.

第1図は、本発明による局所的分岐命令【対する命令の
スケジューリング処理方式を実現する一実施例に使用さ
れるコンパイラの詳細を示すブロック図である。第1図
において、1はソースプログラム、2はコンパイラ、3
はオブジェクトコード、21は構文解析部、22はコー
ド生成部、23は命令スケジューリング部、24は中間
テキスト、25は局所的分岐の有効範囲に関する情報を
付加したオブジェクトコードである。
FIG. 1 is a block diagram showing details of a compiler used in an embodiment of the present invention for implementing an instruction scheduling processing method for local branch instructions. In Figure 1, 1 is a source program, 2 is a compiler, and 3 is a source program.
21 is an object code, 21 is a syntax analysis unit, 22 is a code generation unit, 23 is an instruction scheduling unit, 24 is an intermediate text, and 25 is an object code to which information regarding the effective range of a local branch is added.

コンパイラ2の内部の構成解析部21はソースプログラ
ム1を読込み、中間テキスト245r:生成する。次に
、コード生成部22において中間テキスト24を読込み
、局所的分岐の有効範囲に関する情報を付加したオブジ
ェクトコード2Sを生成する。命令スケジューリング部
23では、局所的分岐の有効範囲に関する情報を付加し
たオブジェクトコード2Sを読込み、局所的分岐の有効
範囲内にある命令群は一つの命令として、命令のスケジ
ューリング処理を行い、命令を並べ換えてオブジェクト
コード3を生成する。
The configuration analysis unit 21 inside the compiler 2 reads the source program 1 and generates intermediate text 245r. Next, the code generation unit 22 reads the intermediate text 24 and generates the object code 2S to which information regarding the effective range of the local branch is added. The instruction scheduling unit 23 reads the object code 2S to which information regarding the effective range of local branches has been added, performs instruction scheduling processing on a group of instructions within the effective range of local branches as one instruction, and rearranges the instructions. Object code 3 is generated.

一例として、第2図に示すような高級言語′で記述され
たソースプログラムに対して、構文解析部21により第
3図に示すような中間テキストを生成するものとする。
As an example, assume that the syntax analysis unit 21 generates intermediate text as shown in FIG. 3 for a source program written in a high-level language as shown in FIG.

次に、中間テキストに対してコード生成部22により局
所的分岐の有効範囲に関する情報を付加したオブジェク
トコードを生成する。一方、命令スケジューリング部2
3ではオブジェクトコード 。
Next, the code generation unit 22 generates an object code with information regarding the effective range of the local branch added to the intermediate text. On the other hand, the instruction scheduling section 2
3 is the object code.

を読込み、局所的分岐の有効範囲内にある命令群を一つ
の命令とみなして命令の一ケジューリング処理を実行し
、第4図に示すようなオブジェクトを生成する。第4図
は、第5図に示した従来技術によるスケジューリング処
理の改良を示すものである。
is read, a group of instructions within the effective range of the local branch are regarded as one instruction, one instruction scheduling process is executed, and an object as shown in FIG. 4 is generated. FIG. 4 shows an improvement to the scheduling process according to the prior art shown in FIG. 5.

したがって、本発明により命令のスケジューリング処理
を行った場合、第4図に示すようにコード生成部22に
よりCompar6命令フ3からLoadl・ 。
Therefore, when the instruction scheduling process is performed according to the present invention, the code generation unit 22 executes Loadl. from Compar6 instruction file 3 as shown in FIG.

命令フ5までの一連の命令はすべて局所的分岐の有効範
囲内の命令であるという情報を付加したオブジェクトコ
ードが作ら九、命令スケジューリング部23によりco
mpare命令73からl□ad命令75までの一連の
命令#は一つの命令とみなして命令のスケジューリング
処理が実行される。また、Load命令71と(::o
mpare命令73との間に[、□ad命令72が移動
され、Compare命令)3で参照するレジスタRe
glの確定待ち時間は減少する。同様に、上記局所的分
岐命令に対する命令のスケジューリング処理を実行する
ことにより、Add命令76と5tore Qy令78
との間に5tore命令77が襲動され、5tore命
令78で参照するレジスタReg2の確定待ち時間は減
少する。
An object code is created with information added that all instructions up to instruction 5 are instructions within the valid range of local branching, and the instruction scheduling unit 23 sends the code to the object code.
The series of instructions # from the mpare instruction 73 to the l□ad instruction 75 is regarded as one instruction and instruction scheduling processing is executed. Also, Load instruction 71 and (::o
The [, □ad instruction 72 is moved between the mpare instruction 73 and the register Re referenced by the Compare instruction)3.
gl's confirmation waiting time is reduced. Similarly, by executing the instruction scheduling process for the local branch instruction, the Add instruction 76 and the 5tore Qy instruction 78
In the meantime, the 5tore instruction 77 is executed, and the confirmation waiting time of the register Reg2 referenced by the 5tore instruction 78 is reduced.

(発明の効果) 以上説明したように本発明は、コード生成部によって中
間テキストからオブジェクトコードを生成する場合に、
局所的分岐命令の有効範囲内にあゐ命令であるか否かの
情報を付加してオブジェクトコードを生成し、命令スケ
ジューリング部では上記情報を用いて局所的分岐命令が
ある場合でも、その有効範囲内にある命令群を一つの命
令上みなして命令のスケジューリング処理を実行するこ
とにより、レジスタの競合が少なく、レジスタの確定埼
ち時間が少なくなるように命令を並び換えているため、
命令をパイプライン方式で実行する計算機システムにお
いては、プログラムの実行時間を短縮できるという効果
がある。
(Effects of the Invention) As explained above, the present invention provides the following advantages: when the code generation unit generates an object code from intermediate text,
The object code is generated by adding information indicating whether the instruction is within the effective range of the local branch instruction, and the instruction scheduling section uses the above information to determine the effective range of the local branch instruction even if there is a local branch instruction. By performing instruction scheduling processing by considering a group of instructions within a single instruction as one instruction, the instructions are rearranged in such a way that there is less register contention and the time it takes for registers to be finalized is reduced.
A computer system that executes instructions in a pipeline system has the effect of reducing program execution time.

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

第1図は、本発明による局所的分岐命令に対する命令の
スケジューリング処理方式を実現する一実施例を示すブ
ロック図である。 第2図および第8図は、それぞれソースプログラムおよ
び中間テキストの一例を示す説明図である。 第4図および第5図は、それぞれ本発明および従来技術
疋よる命令のスケジューリング処理の一例を示す説明図
である。 1・・−ソースプログラム 2・・・コンパイラ 3.2S・・・オブジェクトコード 21・・・構文解析部 22・・−コード生成部 23・・・命令スケジューリング部 24・・・中間テキスト
FIG. 1 is a block diagram showing an embodiment of an instruction scheduling processing method for local branch instructions according to the present invention. FIG. 2 and FIG. 8 are explanatory diagrams showing examples of a source program and intermediate text, respectively. FIG. 4 and FIG. 5 are explanatory diagrams showing an example of instruction scheduling processing according to the present invention and the prior art, respectively. 1...-Source program 2...Compiler 3.2S...Object code 21...Syntax analysis section 22...-Code generation section 23...Instruction scheduling section 24...Intermediate text

Claims (1)

【特許請求の範囲】[Claims] 高級言語が記述されたソースプログラムを読込み、構文
を解析して中間テキストを生成するための構文解析部と
、前記構文解析部により生成された前記中間テキストか
らオブジェクトコードを生成する場合に前記中間テキス
トの一つから生成された命令群中に分岐命令を含ませ、
前記分岐命令の分岐先が前記命令群中のいずれかの命令
か、または最後の命令の次の命令であるならば、前記分
岐命令を局所的分岐命令とし、前記局所的分岐命令およ
び前記分岐命令と前記分岐命令の分岐先の命令との間に
ある命令群を局所的分岐命令の有効範囲とするとき、前
記局所的分岐命令の有効範囲内にあるか否かの情報を付
加してオブジェクトコードを生成するためのコード生成
部と、前記コード生成部により生成された前記オブジェ
クトコードをもとに前記一連の局所的分岐命令の有効範
囲内にある命令群の一つの命令とみなし、命令のスケジ
ューリングを行うための命令スケジューリング部とを具
備して構成したことを特徴とする局所的分岐命令に対す
る命令のスケジューリング処理方式。
a syntax analysis unit that reads a source program written in a high-level language and generates intermediate text by parsing the syntax; and a syntax analysis unit that generates an intermediate text from the intermediate text generated by the syntax analysis unit; Include a branch instruction in the instruction group generated from one of the
If the branch destination of the branch instruction is any instruction in the instruction group or the instruction following the last instruction, the branch instruction is a local branch instruction, and the local branch instruction and the branch instruction When the effective range of a local branch instruction is a group of instructions between the branch destination instruction of the branch instruction and the branch destination instruction of the branch instruction, the object code is added with information as to whether or not it is within the effective range of the local branch instruction. and a code generation unit for generating the object code, and the instruction is scheduled based on the object code generated by the code generation unit, which is regarded as one instruction of a group of instructions within the valid range of the series of local branch instructions. 1. An instruction scheduling processing method for a local branch instruction, characterized in that the instruction scheduling unit is configured to perform the following.
JP1796187A 1987-01-28 1987-01-28 Scheduling processing system for instruction to local branching instruction Pending JPS63186333A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1796187A JPS63186333A (en) 1987-01-28 1987-01-28 Scheduling processing system for instruction to local branching instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1796187A JPS63186333A (en) 1987-01-28 1987-01-28 Scheduling processing system for instruction to local branching instruction

Publications (1)

Publication Number Publication Date
JPS63186333A true JPS63186333A (en) 1988-08-01

Family

ID=11958340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1796187A Pending JPS63186333A (en) 1987-01-28 1987-01-28 Scheduling processing system for instruction to local branching instruction

Country Status (1)

Country Link
JP (1) JPS63186333A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04213118A (en) * 1990-12-07 1992-08-04 Fuji Xerox Co Ltd Program translation processor
JPH04215133A (en) * 1990-02-14 1992-08-05 Internatl Business Mach Corp <Ibm> Compiler optimizing method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04215133A (en) * 1990-02-14 1992-08-05 Internatl Business Mach Corp <Ibm> Compiler optimizing method
JPH04213118A (en) * 1990-12-07 1992-08-04 Fuji Xerox Co Ltd Program translation processor

Similar Documents

Publication Publication Date Title
JP6525286B2 (en) Processor core and processor system
US5778219A (en) Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations
Baudisch et al. Multithreaded code from synchronous programs: Extracting independent threads for OpenMP
JPH0738158B2 (en) Code optimization method and compiler system
JP3539613B2 (en) Array summary analysis method for loops containing loop jump statements
US7251594B2 (en) Execution time modification of instruction emulation parameters
Carle et al. Predicate-aware, makespan-preserving software pipelining of scheduling tables
JPS63186333A (en) Scheduling processing system for instruction to local branching instruction
US7073169B2 (en) Compiler device with branch instruction inserting unit
JP3318051B2 (en) Translation processing method
JPH08286896A (en) Software development method and software development system
JPS63138427A (en) Processing system for scheduling instruction to array
Scholbe Extending DaCe to support the Scalable Vector Extension
JP2797833B2 (en) Parallel instruction execution control method
JPH11212807A (en) Program execution method
JPH03135630A (en) Instruction scheduling system
JP2002318689A (en) Vliw processor for executing instruction with delay specification of resource use cycle and method for generating delay specification instruction
JP2002041283A (en) Sub-pipeline translation structure and how to provide binary compatibility
EP0481617A2 (en) Instruction scheduler for a computer
JPH04343140A (en) Parallelized processing system
JP2682206B2 (en) Optimization method of target program
JPH04365133A (en) Preload instruction executing device and program correcting device
JPH0425969A (en) Compiling system which is made into definition arrangement vector under if sentence
CN117492836A (en) Data flow analysis method for variable length vector system structure
JPH03144830A (en) Parallel processing system