JPS60258648A - Program optimization processing system - Google Patents

Program optimization processing system

Info

Publication number
JPS60258648A
JPS60258648A JP11434984A JP11434984A JPS60258648A JP S60258648 A JPS60258648 A JP S60258648A JP 11434984 A JP11434984 A JP 11434984A JP 11434984 A JP11434984 A JP 11434984A JP S60258648 A JPS60258648 A JP S60258648A
Authority
JP
Japan
Prior art keywords
optimization
processing
unit
flow
program
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
JP11434984A
Other languages
Japanese (ja)
Inventor
Tomoyuki Tani
谷 友幸
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP11434984A priority Critical patent/JPS60258648A/en
Publication of JPS60258648A publication Critical patent/JPS60258648A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To reduce simply a common equation processing range and to decrease considerably the compiling time by providing a propriety deciding means for common equation processing and a link producing means for optimization sections to each program flow unit. CONSTITUTION:A complier 2 performs identification of sentences, symbols, etc. and the analysis of sentence structures of a source program 1 and produces an intermediate object code 4 through an object code conversion part 3. An optimization processing part 5 carries out the optimization for the code 4. An optimization section setting part 7 divides the optimization processing range according to a flow unit table 9 of the code 4 and sets the optimization sections to register them to an optimization section table 10. A control flow analysis part 8 recognizes the optimization sections according to the contents of the table 10 and retrieves a common equation within each range to process it. The result underwent this processing is outputted in the form of an object module 11.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理システムにおけるプログラムの最
適化処理方式に関し、特にプログラム上での共通式処理
のための最適化範囲を限定することにより高速化を図っ
たプログラム最適化処理方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a program optimization processing method in a data processing system. This paper relates to a program optimization processing method that aims to achieve

〔従来の技術〕[Conventional technology]

原始プログラムのコンパイル処理では、生成した目的コ
ードを効率的なものにするため最適化処理が行われる。
When compiling a source program, optimization processing is performed to make the generated target code efficient.

最適化には定数式計算の先取り、ループ内不変式のルー
プ外移動、論理式の最適化、共通式の削除などがある。
Optimizations include preempting constant expression calculations, moving invariant expressions within a loop outside the loop, optimizing logical expressions, and deleting common expressions.

この中で共通式の削除とは、プログラム内に同一構造の
式で変数の値が変わ6らないものが複数あった場合に、
最先の式だけを残して後の式を削除し、削除した場所で
は、最先の式の演算結果だけを参照してこれをそのまま
利用することにより、無駄な演算の繰り返しをなくすも
のである。次に共通式の探索処理を具体例で説明する。
Among these, deletion of common expressions is when there are multiple expressions with the same structure in a program whose variable values do not change.
This eliminates unnecessary repetition of operations by leaving only the first expression and deleting the subsequent expressions, and in the deleted place, referring only to the operation result of the first expression and using it as is. . Next, common expression search processing will be explained using a specific example.

第2図はプログラムの1例を示したもので、図中、■乃
至■はフローユニット(以後車にユニットということが
ある)である。共通式をめるためにはまず、各ユニット
内およびユニット間で同一構造の式が存在するか否かを
調べる。同一構造の式とは変数名および演算子が全て一
致している式のことである。図ではユニットの内の式“
’D+E”がユニット■内の式“’ D + E”と一
致し、またユニット■内の式“B十〇”がユニット■内
の式” B + C”と一致している。
Fig. 2 shows an example of a program, and in the figure, ◯ to ◯ are flow units (hereinafter sometimes referred to as ``vehicle units''). In order to find a common formula, it is first checked whether formulas with the same structure exist within each unit and between units. Expressions with the same structure are expressions in which all variable names and operators are the same. In the figure, the expression within the unit “
'D+E' matches the formula ''D + E' in unit ■, and the formula 'B10' in unit ■ matches the formula 'B + C' in unit ■.

次にこれら各相互に一致した式のうら、先行する弐の演
算結果を後続の式が利用可能であるが否かを制御フロー
にしたがって解析する。まずユニット■の式” B +
 C″については、゛ユニット■が条件分岐命令BCで
あることから、4)シもユニット■側のパス(Ll)が
選択されると、弐″B(C”は演算されないことが起こ
る。し、たがって、ユニット■における式” B + 
C”は、っ−二、ト■の式“B + C”の演算結果を
確実に利用できる保証がないので、これらを共通式とす
ることができない。すなわち、ユニット■からめて必ず
jfflaする最も近いユニ・7ト (バソクドミネー
タBDと呼ばれる)の■か■しか対象にすることができ
ない。
Next, among these mutually matching expressions, the calculation result of the second preceding one is analyzed according to the control flow to determine whether the subsequent expression can be used. First, the formula for unit ``B +
As for C'', since unit ■ is a conditional branch instruction BC, if the path (Ll) on the unit ■ side is selected in 4), 2''B(C) will not be calculated. , therefore, the formula in unit ■ “B +
Since there is no guarantee that the operation result of the expression "B + C" in (2) and (3) can be reliably used, these cannot be used as a common expression.In other words, from the unit (■), the most You can only target the nearest unit 7 (called Basoku Dominator BD) ■ or ■.

他方、1ニツト■の弐“’D+E”の演算はユニット■
での条件分岐命令の実行で、ユニット■、■のいずれが
選択されるかに拘ることなく実行される。そしてユニッ
ト■がらユニット■までの間に、変数り、Eの値が変更
されないがら、ユニット■で演算された式” D −1
−E″の結果は、ユニノl■において利用可能であり、
これらは共通式であると判定される。したがって、ユニ
ット■内の式“D + E ”は削除され、ユニット■
の式“D十E”の演算結果を参照するように書き替えら
れる。
On the other hand, the operation of ``D+E'' of 1 nit ■ is a unit ■
The conditional branch instruction is executed regardless of whether unit (2) or (2) is selected. Then, from unit ■ to unit ■, the value of variable E remains unchanged, but the expression calculated in unit ■ is ``D -1.''
-E'' results are available in UNINO I■,
These are determined to be common expressions. Therefore, the expression “D + E” in unit ■ is deleted and unit ■
is rewritten to refer to the calculation result of the expression "D+E".

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

従来の共通式探索処理では、プログラムの制御フロー全
体を対象にして探索し、フロー解析の結果取捨している
が、たとえば中間にCALL文があるときには他のモジ
ュールに亘って解析することができないなど、プログラ
ム全体のフロー解析が無駄となるような場合があり、処
理効率が悪いという問題があった。
In conventional common expression search processing, the entire control flow of a program is searched and the results of flow analysis are discarded. However, for example, if there is a CALL statement in the middle, it is not possible to analyze other modules. , there were cases where the flow analysis of the entire program was wasted, resulting in a problem of poor processing efficiency.

〔問題点を解決するための手段〕[Means for solving problems]

変数の値は、2つの式の間にCA L 1文や文ラベル
、ループなどがあるとき変更されている可能性がある。
The value of a variable may be changed when there is a CAL 1 statement, statement label, loop, etc. between two expressions.

これを実際に確認するのは不0■能かもしくは煩雑な処
理が必要となる。このため本発明では、この問題を簡易
な手段で解決するため、このようなCALL文や文う−
・ル、ループが現れたところで無条件にフローを切断し
て最適化区間を分割設定し、必要最小限の範囲でのフロ
ー解析を行うようにするものであり、その構成は、プt
lダラムのコンパイル処理システl、において、プIコ
グラムのフローユニノ[ごとに文のう゛・\ル、CA 
LL文、ループ、END、1F等のその前後で共通式処
理の可否判定が困難となる要素を検出する手段と、該検
出された要素のフローフ、ニッ1−の直後に最適化処理
範囲の切断点を挿入して、最適化区間のフローユニット
のリンクを表示するテーブルを作成する処理手段とをそ
なえ、上記テーブルによりリンクを指示されたフローユ
ニットの範囲で共通式処理を実行することを特徴とする
ものである。
Actually checking this is either impossible or requires complicated processing. Therefore, in the present invention, in order to solve this problem with simple means, such CALL statements and
・When a loop appears, the flow is unconditionally cut, the optimization interval is divided, and the flow analysis is performed within the minimum necessary range.
In Durham's compilation processing system, the flow unit of a program is
Means for detecting elements for which it is difficult to determine whether or not common expression processing is possible before and after LL statements, loops, ENDs, 1F, etc., and cutting off the optimization processing range immediately after the flow of the detected elements. A processing means for inserting points to create a table displaying links of flow units in the optimization interval, and executing common expression processing within a range of flow units whose links are instructed by the table. It is something to do.

〔実施例〕〔Example〕

以下に本発明の詳細を実施例にしたがって説明する。 The details of the present invention will be explained below based on examples.

本発明により、最適化区間の設定は、次のような規則(
a)乃至(c)にしたがって実行される。
According to the present invention, the optimization interval is set according to the following rules (
It is executed according to a) to (c).

(a)制御フロー中に文うヘル、ループ入口、CA i
、 L、文等の変数の値の変化の有無を簡単には解析で
きない要素を検出したとき、その直後を最適化区間の切
断点とする。
(a) Hell written in control flow, loop entrance, CA i
, L, When an element that cannot be easily analyzed for the presence or absence of a change in the value of a variable, such as a sentence, is detected, the point immediately after it is set as the cutting point of the optimization interval.

(b)共通式処理はフローユニット内でけでなく、可能
な限りの他のフローユニットに亘って実行する。
(b) Common processing is executed not only within a flow unit, but also across as many other flow units as possible.

(c)IF文のTHEN節内で最適化区間が切れてもI
F文の判定までとELSE節との間では共通式処理を可
能とする。ただし、IF文が終了するEND T Fの
後で別の最適化区間とする。第3図はこれを図示したも
のであり、■乃至■はフローユニットを示す。IF文の
判定ユニット■とTHEN節のCALLAまでのユニッ
ト■とが1つの最適化区間内に入り、判定ユニット■と
E T、、 S E節ユニット■とが1つの最適化区間
内に入る。そしてT HE N節のCΔ1. l。
(c) Even if the optimization interval expires in the THEN clause of the IF statement, I
Common expression processing is possible between the judgment of the F statement and the ELSE clause. However, another optimization section is set after END TF, where the IF statement ends. FIG. 3 illustrates this, and ■ to ■ indicate flow units. The judgment unit ■ of the IF statement and the unit ■ up to CALLA of the THEN clause fall within one optimization interval, and the judgment unit ■ and the ET, , SE clause unit ■ fall within one optimization interval. And CΔ1 of T HE N clause. l.

A以後のユニット■と、END I F以後とは、それ
ぞれ別の最適化区間となる。
Unit (2) after A and after END IF are separate optimization sections.

第1図は本発明方式の1実施例の説明図である。FIG. 1 is an explanatory diagram of one embodiment of the system of the present invention.

図中、1は原始プログラム、2はコンパ・fう、3は目
的コード変換部、4は目的:l−ド、5は最適化処理部
、6は共通式処理部、7は最適化区間設定部、8は制御
フロー解析部、9(よ)C1−コ、二・ノドテーブル、
10は最適化区間テーブル、11は目的モジュールを表
している。
In the figure, 1 is the source program, 2 is the comparator, 3 is the target code conversion section, 4 is the purpose: L-code, 5 is the optimization processing section, 6 is the common expression processing section, and 7 is the optimization section setting. part, 8 is control flow analysis part, 9 (yo) C1-co, 2-nod table,
10 represents an optimization interval table, and 11 represents an objective module.

コンパイラ2は、原始プログラム1の処理を指示される
と、文、記号等の識別や(14文解析などの図示省略さ
れている処理を行った後、目的−1−1変換部3で中間
的な目的コード4を生成する。最適化処理部5は、目的
コー1′4について、前述したような各種の最適化処理
を実行する。共通式処理部6はその一部であり、最適化
区間設定部7および制御フロー解析部8を含んでいる。
When the compiler 2 is instructed to process the source program 1, it identifies sentences, symbols, etc. (14) After performing processing (not shown in the figure) such as sentence analysis, the compiler 2 performs intermediate processing in the purpose-1-1 conversion unit 3. The optimization processing section 5 executes various optimization processing as described above for the objective code 1'4.The common expression processing section 6 is a part of the optimization processing section It includes a setting section 7 and a control flow analysis section 8.

最適化区間設定部7は、目的コート4のフローユニット
テーブル9にしたがって、前述した(a)、(b)、(
C)の規則を目的コードに適用し、最適化処理範囲を分
割し、最適化区間を設定する。
The optimization section setting unit 7 performs the above-mentioned (a), (b), (
Apply the rule C) to the target code, divide the optimization processing range, and set the optimization interval.

設定された結果は最適化区間テーブル10に登録される
The set results are registered in the optimization section table 10.

゛ 制御フロー解析部8は、最適化区間テーブル10の
内容にしたがって各最適化区間を認識し、それぞれの範
囲内で共通式の探索を行い処理する。
゛ The control flow analysis unit 8 recognizes each optimization interval according to the contents of the optimization interval table 10, searches for a common expression within each range, and performs processing.

このような最適化処理を経て、最終的にコンパイル処理
された結果は、目的モジュール11として出力される。
After such optimization processing, the final compiled result is output as the target module 11.

第4図は、最適化区間設定部7の処理例を示したもので
、(a)は第3図に示したプログラムに対応するフロー
ユニットテーブルの内容であり、(b)に示されるプロ
グラムのフロー、すなわち第3図のフローユニット■乃
至■のリンク関係を、ザクセノザリストを示したもので
ある。ここでフロ−ユニット1,3間のリンクは、(i
、j)で表されている。最適化区間設定部7は、それぞ
れのリンクにしたがって、順次のフローユニ・7トのテ
キスI−を解析し、CA L L文のイT無、1ト文の
整理などを行い、(b)のリンク中に鎖線で示される切
断点を検出する。切断点を検出されたフローユニットで
は、サクセノザリストの(i、j)を(i、0)に変更
し、さらに(0、j)を追加することにより、切断点を
表示させ、最適化区間テーブル10を作成する。第4図
の(C)は、このようにして作成された(b)のプロゲ
ラJ“、に対応する最適化区間テーブルの内容を表して
いる。
FIG. 4 shows a processing example of the optimization section setting unit 7, in which (a) shows the contents of the flow unit table corresponding to the program shown in FIG. 3, and (b) shows the contents of the flow unit table corresponding to the program shown in FIG. The flow, that is, the link relationship between flow units (1) to (2) in FIG. 3 is shown in a saxenoza list. Here, the link between flow units 1 and 3 is (i
, j). The optimization section setting unit 7 analyzes the text I- of the flow unit 7 sequentially according to each link, and performs operations such as ``I-T'' of CALL sentences and arranging ``1-T'' sentences, etc. Detect the cutting point indicated by the dashed line in the link. In the flow unit where a cut point has been detected, change (i, j) in the successor list to (i, 0), and then add (0, j) to display the cut point and update the optimization interval table 10. Create. FIG. 4(C) shows the contents of the optimization section table corresponding to "Progera J" in FIG. 4(b) created in this way.

サクセソサリストが(0、j)である場合、新し。New if the successor is (0,j).

い最適化区間がフローユニソ+−jから開始するものと
認識される。すなわち図示の例では、フローユニット■
および■の直前でそれぞれ最適化区間が開始される。
It is recognized that a new optimization interval starts from flow Uniso+-j. In other words, in the illustrated example, the flow unit ■
The optimization section starts immediately before and immediately before ■.

次に、制御フロー解析部8の動作について説明する。ま
ず、共通式処理の対象とするテキストを、演算タイプ別
、たとえば→、−等にしたがって、設定された最適化区
間内で別々に後方向に千−一−ンを張り、次に目的コー
ドのテキストを順次探索して行って、新しい式が出て来
たときにその式の演算タイプに対応するチェーンを選択
して、その中に同一式があるか否かを調べ、共通式処理
を行うものである。
Next, the operation of the control flow analysis section 8 will be explained. First, the text to be subjected to common expression processing is stretched backwards separately within the set optimization interval according to the operation type, for example →, -, etc., and then the target code is Search the text sequentially, and when a new expression appears, select the chain that corresponds to the operation type of that expression, check whether there is an identical expression among them, and perform common expression processing. It is something.

第5図は、簡単化のため、第2図に示した演算タイプが
単一の加算式のみを含むプログラムの例について、各最
適化区間ごとに張られたテキストチェーンを示したもの
である。■乃至■はフローユニット番号であり、Pij
は、フローユニット番号0のフローユニットにおけるチ
ェーンのj番目のテキストアドレスを表している。
For simplification, FIG. 5 shows a text chain stretched for each optimization interval for the example program shown in FIG. 2, in which the operation type includes only a single addition expression. ■~■ are flow unit numbers, Pij
represents the jth text address of the chain in the flow unit with flow unit number 0.

制御フロー解析部8では、処理時に、第6図に示す演算
タイプアドレスリストと、第7図に示す退避リストとを
作成し、保持する。
During processing, the control flow analysis unit 8 creates and holds an operation type address list shown in FIG. 6 and a save list shown in FIG. 7.

演算タイプアドレスリストには、演算タイプ(+、−1
×、・・・)ごとに、最も新しいテキストのアドレスが
記録されている。この最新テキストア1”レスはチェー
ンの先頭位置を示すポインタと、なる。
The operation type address list includes operation types (+, -1
x,...), the address of the newest text is recorded. This latest text address becomes a pointer indicating the top position of the chain.

処理の際、プログラムの順次のテキストを、演算タイプ
アドレスリストに登録されている演算りイブと比較し、
ない場合にはその演算タイプと、テキストアドレスとを
登録し、ある場合にはその演算タイプのテキストチェー
ンを第5図に示すようにたどって共通式を探す。そして
共通式を見出せた場合には、その最新テキストを削除し
、先行テキストを参照させる処理を行う。他方共通式を
見出せなかった場合には、そのテキストをチェーンにつ
なぎそのアドレスで演算タイプアトレスリストの最新テ
キストアドレスを更新する。
During processing, the sequential text of the program is compared with the calculations registered in the calculation type address list,
If not, the operation type and text address are registered, and if there is, the text chain of the operation type is traced as shown in FIG. 5 to search for a common expression. If a common expression is found, the latest text is deleted and the previous text is referred to. On the other hand, if no common expression is found, the text is connected to the chain and the latest text address in the operation type address list is updated with that address.

テキストチェーンをたどる場合には、第7図の退避リス
トが使用される。退避リストは、各フローユニットの終
端で、演算タイプごとのテキストチェーンのリストをフ
ローユニット番号とともに退避格納したものである。処
理は後からさかのぼる方向で進められ、フローユニット
の先頭に達したとき、第1図の最適化区間テーブルを用
いてそのフローユニットのバックドミネータとなる先行
フローユニットをめ、退避リストより対応するテキスト
チェーンリストを取り出して処理を再開する。バノクド
ミネータが“0゛のとき、すなわら、テーブルのサクセ
ソサリストが(0、i)であれば、最適化区間の端に達
したことを意味するので、次のテキストの処理に移る。
When following a text chain, the save list of FIG. 7 is used. The save list is a list of text chains for each operation type saved and stored together with the flow unit number at the end of each flow unit. Processing proceeds in a backwards direction, and when the beginning of a flow unit is reached, the optimization interval table in Figure 1 is used to find the preceding flow unit that will be the back dominator of that flow unit, and the corresponding text is extracted from the save list. Retrieves the chain list and resumes processing. When the banok dominator is "0", that is, when the table's successor list is (0, i), it means that the end of the optimization interval has been reached, and processing moves on to the next text.

このようにして全てのテキストについて共通式処理を実
行したとき、処理を終了する。
When the common expression processing has been executed for all texts in this way, the processing ends.

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

本発明によれば共通式処理の範囲を簡単に縮小すること
ができ、コンパイル処理時間の大幅な短縮を可能にする
According to the present invention, the range of common expression processing can be easily reduced, making it possible to significantly shorten compile processing time.

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

第1図は本発明の1実施例の説明図、第2図はプログラ
ムの1例を示す説明図、第3図は本発明による最適化区
間設定例の説明図、第4図は最適化区間設定部の処理例
の説明図、第5図はテキストチェーンの説明図、第6図
は演算タイプアドレスリストの説明図、第7図は退避リ
ストの説明図である。 図中、1は原始プログラム、2はコンパイラ、4は目的
コード、6は共通式処理部、7は最適化区間設定部、8
は制御フロー解析部、9はフローユニソI〜テーブル、
10は最適化区間テーブルを表す。 特許出願人 富士通株式会社
Fig. 1 is an explanatory diagram of an embodiment of the present invention, Fig. 2 is an explanatory diagram showing an example of a program, Fig. 3 is an explanatory diagram of an example of setting an optimization interval according to the present invention, and Fig. 4 is an explanatory diagram of an example of an optimization interval. FIG. 5 is an explanatory diagram of a processing example of the setting section, FIG. 5 is an explanatory diagram of a text chain, FIG. 6 is an explanatory diagram of an arithmetic type address list, and FIG. 7 is an explanatory diagram of a save list. In the figure, 1 is the source program, 2 is the compiler, 4 is the target code, 6 is the common expression processing section, 7 is the optimization section setting section, 8
is the control flow analysis section, 9 is the flow Uniso I~ table,
10 represents an optimization interval table. Patent applicant Fujitsu Limited

Claims (1)

【特許請求の範囲】[Claims] プログラムのコンパイル処理システムにおいて、プログ
ラムのフローユニットごとに文のラー・ル、CALL文
、ループ、END I F等のその前後で共通式処理の
可否判定が困難となる要素を検出する手段と、該検出さ
れた要素のフローユニットの直後に最適化処理範囲の切
断点を挿入して、最適化区間のフローユニットのリンク
を表示するテーブルを作成する処理手段とをそなえ、上
記テーブルによりリンクを指示されたフローユニットの
範囲で共通式処理を実行することを特徴とするブ目グラ
ム最適化処理方式。
In a program compilation processing system, means for detecting elements that make it difficult to determine whether or not common expression processing is possible before and after such as a statement, a CALL statement, a loop, an END IF, etc., for each program flow unit; and a processing means for inserting a cut point in the optimization processing range immediately after the flow unit of the detected element to create a table displaying the link of the flow unit in the optimization interval, and the link is instructed by the table. A block-gram optimization processing method characterized by executing common expression processing within a range of flow units.
JP11434984A 1984-06-04 1984-06-04 Program optimization processing system Pending JPS60258648A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11434984A JPS60258648A (en) 1984-06-04 1984-06-04 Program optimization processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11434984A JPS60258648A (en) 1984-06-04 1984-06-04 Program optimization processing system

Publications (1)

Publication Number Publication Date
JPS60258648A true JPS60258648A (en) 1985-12-20

Family

ID=14635524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11434984A Pending JPS60258648A (en) 1984-06-04 1984-06-04 Program optimization processing system

Country Status (1)

Country Link
JP (1) JPS60258648A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756745A (en) * 1993-08-13 1995-03-03 Nec Corp Compiler processing system for language processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756745A (en) * 1993-08-13 1995-03-03 Nec Corp Compiler processing system for language processing program

Similar Documents

Publication Publication Date Title
Wahler et al. Clone detection in source code by frequent itemset techniques
US4860203A (en) Apparatus and method for extracting documentation text from a source code program
US7231633B2 (en) Debugging with set verbosity level during read and analysis of executable code and associated comments while logging according to set verbosity level
US6654952B1 (en) Region based optimizations using data dependence graphs
KR100226233B1 (en) Compiler
WO2000045255A2 (en) Determining destinations of a dynamic branch
US20040205739A1 (en) Optimizing post-link code
CN103577241A (en) Compiling system and compiling method
Gévay et al. Efficient control flow in dataflow systems: When ease-of-use meets high performance
JPS60258648A (en) Program optimization processing system
Nan et al. Enabling near real-time nlu-driven natural language programming through dynamic grammar graph-based translation
JPH0887417A (en) Compiler device
US6694512B1 (en) Data processing device, data processing method and supply medium thereof
MARINOV An efficient syntax-preserving slide-based algorithm for program slicing
JPH0417031A (en) System for optimizing propagation of constant value
Neel et al. Removal of invariant statements from nested-loops in a single effective compiler pass
JP3167386B2 (en) Automatic program parallelization method
JP2723020B2 (en) Trace data generation system
JPH10116197A (en) Program analyzing method
JPH03127127A (en) Method of optimizing computer program
JPH05204705A (en) Processing method for detecting undefined parameter
JPH03176744A (en) Software testing system
JPH0193826A (en) System for counting dynamic step of high grade language
EP2590075A1 (en) A system and a method for statically processing a piece of assembly level code
JPH04352036A (en) Paralleling processor in compiler