JPH0281137A - 最適化コンパイラ及びコンパイル方法 - Google Patents

最適化コンパイラ及びコンパイル方法

Info

Publication number
JPH0281137A
JPH0281137A JP23232588A JP23232588A JPH0281137A JP H0281137 A JPH0281137 A JP H0281137A JP 23232588 A JP23232588 A JP 23232588A JP 23232588 A JP23232588 A JP 23232588A JP H0281137 A JPH0281137 A JP H0281137A
Authority
JP
Japan
Prior art keywords
optimization
compiler
optimizing
information
intermediate language
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
JP23232588A
Other languages
English (en)
Inventor
Hiroko Yamaguchi
裕子 山口
Noriyasu Mori
森 教安
Akira 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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP23232588A priority Critical patent/JPH0281137A/ja
Publication of JPH0281137A publication Critical patent/JPH0281137A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は原始プログラムを目的プログラムに変換するコ
ンパイラに係り、特に目的プログラムの実行効率を良く
する最適化コンパイラ及びその作成方法及び最適化コン
パイル方法に関する。
[従来の技術] 従来、コンパイラにおける最適化技法については、コン
パイラズ、プリンシバルズ、テクニック。
アンド・ソールズ(1985年)  (Compile
rs :Pr1nciples、 Technique
s、 and Tools (1985))において論
じられている。特に、上記文献の第589頁から第59
1頁に、最適化部の構成が制御フロー解析部、データフ
ロー解析部、中間語変換部から成ることが、述べられて
いる。
[発明が解決しようとする課題] 上記従来技術では、コード最適化のアルゴリズムを述べ
ているが、最適化部の構成の詳細は述べていない。
実際に最適化コンパイラを稼働する際には、最適化部自
身の処理効率も問題となる。特に、多種類の最適化を実
現しようとする時は、最適化部の構成が処理効率にひび
く。本発明の目的は、処理効率の良い最適化部の構成方
法を提供することにある。
処理効率は、処理時間の速さと、使用する領域の量とか
ら測られるもので、本発明では両者の向上を第1の目的
としている。同時に、設計のしやすい、最適化部の構成
方法を提供する。具体的には、従来効率の悪かった中間
語の走査・変換処理の効率を良くする方法を提供する。
また、最適化部では、処理のために比較的大きな領域を
必要とする。しかし、実現上の問題から、領域に上限値
を設ける場合が多い、上限値を超えると、可能な最適化
まで出来なくなったり、領域再構成という処理のオーバ
ーヘッドが生じたりする0本発明では、最適化のための
情報を効率良く設定する方法を提供することを第2の目
的としている。
上記本発明の最適化部の構成をもってしても、最適化部
全体の処理時間において、最適化項目の検出時間の占め
る比重は、大きい、しかし、現実には、最適化する余地
のない原始プログラムが多く、このような原始プログラ
ムに対して、多種類の最適化の可能性(以下、最適化項
目とよぶ)を検出することは、(結果として)無駄であ
るともいえる0本発明では、最適化項目の検出時間を短
縮する方法を提供することを第3の目的としている。
一般に、最適化の可能性を拡げるためにおこなう、副作
用(関数呼び出し等)の解析は、複雑な処理であること
が多い、副作用の解析をしない最適化コンパイラは、処
理は単純であるが、最適化の効率は当然低い、このよう
なコンパイラにおいて、原始プログラム中の副作用の要
因を取り除き、最適化の可能性を拡げる方法を提供する
ことを第4の目的としている。
[手段] 本発明のコンパイラのコード最適化部では、以下(1)
〜(4)に示す手順で処理を行なう。
(1)原始プログラムを構文解析してできた中間語を走
査して、制御フロー解析と、データの局所的な情報(局
所属性)の収集をし、これらをファイルに設定する。
(2)(1)で収集した情報を参照して大域的データフ
ロー解析をし、最適化項目を検出する。
(3)最適化項目を最適化変換する仕様(中間語変換仕
様)をファイルに設定する。この際、最適化後の中間語
を反映するように、局所属性を更新する。データフロー
解析中に、新たな最適化の可能性が生じたら、中間語変
換仕様を変更する。
(4)最適化項目が検出し終ったら、中間語変換仕様に
基づき、中間語を変換する。
大域的データフロー解析により算出したデータの大域的
な情報(大域属性)を設定する際には、異なる種類の大
域属性を共用領域に設定する。
また、最適化項目の検出時間を短縮する目的で以下に示
す手段を合わせて用いる。
局所的な最適化処理をする際、出現した最適化項目の数
を数える。この数が多ければ、そのプログラムには大域
的最適化の可能性も大きいと判断し、大域的最適化をす
る。
最適化に必要な領域があふれた場合、最適化してない目
的プログラムを出力する。最適化の可能性ありとみられ
るプログラムについてのみ、再コンパイル時に領域再構
成して、最適化する。
最適化処理をする際、出現した最適化項目の種類別の出
現個数を数えて、最適化情報として外部ファイルに設定
する。再コンパイル時には、このファイルを参照して、
有効な最適化処理を選択する。
複数のプログラムについての最適化情報を求めて、これ
らと同系統のプログラムのコンパイル時に、最適化情報
を参照して、有効な最適化処理を選択する。
最適化処理時に、副作用を検出したら、この情報をコン
パイル終了時にメツセージとして出す。
[作用] 最適化項目を検出するには、設定済みの制御フロー情報
と局所属性を参照する。そして、最適化項目を検出した
ら、すぐに中間語を変換するのではなく、中間語変換仕
様として設定しておく、この際、その部分の局所属性が
更新されるため、新たに生じる最適化項目を検出するの
に、局所属性を用いることができる。改めて、中間語を
走査しないでよい。
中間語変換仕様も、処理中に更新されていく。
最適化項目を検出する毎に、中間語を変換する場合は、
変換したものを更に変換するということがある。本発明
では、最適化項目を検出し終えた時点で、中間語変換仕
様に基づき変換をするので、冗長な中間語変換が防げる
大域属性は種類が多いが、特定の処理をする際、同時に
必要となるものは少ない。そこで、複数の大域属性を設
定する領域を共用させることで、領域の節減を図る。
局所的な最適化項目の出現個数から、大域的最適化の可
能性が類推できるので、大域的最適化の可能性が大きそ
うなプログラムについてのみ、大域的最適化をすること
ができる。
最適化に必要な領域があふれた場合にも、同様にして、
大域的最適化の可能性が大きそうなプログラムについて
のみ、領域再構成して、大域的最適化をすることができ
る。
最適化情報から、再コンパイル時にプログラムにとって
有効な最適化処理を選択・実行できる。
複数のプログラムについての最適化情報から、これらと
、同系統のプログラムのコンパイル時に。
有効な最適化処理を選択・実行できる。
メツセージから、ユーザは副作用の要因を原始プログラ
ムから取り除き、再コンパイル時に最適化の可能性を拡
げる。
[実施例コ 第1図(a)に、コンパイラの処理の流れを示す、コン
パイラは原始プログラム1を読み込み。
中間語を生成して、この中間語に対して最適化を施し、
最適化された中間語からコード生成して目的プログラム
2を出力する(ステップ100)。
ここで述べる最適化とは、目的プログラムの実行効率を
上げるためのコード最適化である。
第1図(b)に、本発明の最適化コンパイラの最適化部
の処理の流れを示す。
最適化部では、まずプログラムの制御の流れを解析(制
御フロー解析)する、これは、プログラムを、内部に分
岐などがない基本ブロックに分割し、基本ブロックを制
御の渡る順につなげて、制御フロー情報4を生成する。
第2図に制御の渡る順を矢印で示したプログラムの例を
示す、(a)は原始プログラム、(b)は(a)を制御
フロー解析した後の図である。
次に基本ブロック内のみを解析してできる局所的最適化
を行ない、変換した中間語を大域的最適化フェーズに渡
す(ステップ101)。
大域的最適化とは、基本ブロックの範囲を超えた最適化
である。ブロック間にまたがるデータの流れを解析(デ
ータフロー解析)するため、まずブロック毎のデータの
情報(局所属性5)を算出する。ここでデータとは変数
、式等のことで、変数、式がブロック内で設定・変更・
参照されるかということを示すのが局所属性である。局
所属性は中間語を一回走査することで収集され、必要な
ものには計算が施され、局所属性ファイル5に設定され
る(ステップ102)、制御フロー情報4と局所属性5
を基に、データフロー解析して大域属性6を算出する(
ステップ103)、大域属性は各データについて基本ブ
ロック毎に定義される。
その基本ブロックより上方あるいは下方に移動できるか
ということが、主な情報である。
適当なアルゴリズムにより最適化項目を検出しても、た
だちに中間語を最適化変換することはしない、どのよう
な最適化変換を施せばよいかを表わす変換仕様を中間語
変換仕様ファイル7に設定する。
最適化変換の種類は、大別して中間語の挿入・削除・置
換に分けられる。従って、中間語変換仕様とは、変換す
るべき位置で、3種類のうちの何れの最適化をして、ど
う変換すべきかという情報であるともいえる。
中間語変換仕様ファイル7を設定する際には、変換して
も不正にならないことを、元の中間語に照らして検証す
る。また、変換後の中間語を反映するように、その都度
局所属性5を更新する(ステップ104)。
最適化項目を検出し終え、中間語変換仕様ファイル7が
一意に定まったなら、変換仕様に従い、中間語を変換す
る(ステップ105)。
以上で大域的最適化の処理は終るが、新たに局所的最適
化の可能性が生じることがある。そこで再び局所的最適
化を行ない(ステップ106)、最適化部の処理を終え
る。
本発明で実施する最適化の例を第3図に示す。
(a)は最適化前、(b)は中間語変換仕様を含めた最
適化の過程、(c)は最適化後のプログラムを示す。
基本ブロック(i)で1に設定されたXの値が、基本ブ
ロック(k)内の式w=x+zに到達するまでに変更さ
れないことが、属性により知れる。
そこで、式W=X+Z内のXを値1に置き換える(複写
伝播)よう、(b)のブロック(k)に示すように中間
語変換仕様を設定する。この際、ブロック(k)内の局
所属性の式x+zを表わす部分が、式1+zを表わすよ
うに、局所属性を更新する。
更新された局所属性により、ブロック(j)と(k)内
に式1+zが2度出現していることがわかる。後の式を
先に出た式yで置き換える(光通式の削除)最適化項目
が検出される。これを表わすように、先に設定した中1
”、1111変換仕様を再び設定し直す。
以上の例から、従来技術にはない本発明の効果がわかる
。最適化項目を検出するたびに、中間語を変換していた
ら、1度変換したものを、更に変換し直す場合がでてく
る。また、中間語変換仕様を設定する際に、対応する局
所属性を更新なかったら、新たな最適化の可能性を検出
するために、変換後の中間語を再び走査しなければなら
なくなる。
一般に、中間語を走査・変換する処理は、時間と領域が
かかるので、必要最小限の処理に留めたい1本発明では
、上述した方法がこれを実現している。
本発明は、最適化コンパイラの最適化部を容易に生成す
る方法も提供している。データフロー解析・最適化項目
検出(ステップ103)の処理では、制御フロー情報と
局所属性とを参照し、中間語は参照しない。つまり、こ
の処理は中間語を生成する基の原始プログラムの記述言
語に依存しないものであるといえる。大域的なデータフ
ロー解析・最適化項目検出の処理部は、他の言語用のコ
ンパイラを作る際、そっくり利用できる。
また、本最適化コンパイラでは、属性を設定する領域を
少なく抑えるために、次に示すような方法をとる。各種
の最適化項目検出に必要な大域属性は種類は多いが、一
種類の最適化項目(例えば共通式の削除)を検出するの
に必要な大域属性は数種類である。そこで、最適化項目
を検出する処理間で、排他的関係にある大域属性の領域
は共用させる。第4図に示すように、大域属性管理領域
8を設け、属性領域の管理をする。
ある最適化項目を検出する直前に、必要になる大域属性
を算出して、領域に登録する。この大域属性が、別の最
適化項目を解出する際に不要になれば、必要な大域属性
のために領域を解放する。
全ての属性に対して常に領域を取ると、設定すべき属性
の数が多くなった場合、領域からあふれて最適化項目を
検出し切れなくなることもある。
そのような事態を防ぐ意味でも、領域を削除することは
有効である。
また、最適化項目の検出時間を短縮するために以下に示
す方法を合わせて用いることが有効である。ここで述べ
る方法では、個々のプログラムを処理する時間は短縮さ
れないように思える。しかし、コンパイルの対象となる
プログラムは多様である。ねらいはあくまで、多数のプ
ログラムに対して平均的に処理速度(コンパイル時間)
を向上させる事である。
局所的な最適化処理をする際、出現した最適化項目の数
を数える。この数が多ければ、そのプログラムには大域
的最適化の可能性も大きいと判断し、大域的最適化をす
る。
この判断はコンパイラの内部処理で行なってもよいし、
最適化項目の数をメツセージとして出して、ユーザに判
断を委ねても良い。どちらが判断するかは、ユーザがコ
ンパイル開始時にオプションで指定する。
ユーザが判断する場合を、第5図を用いて説明する。
局所的な最適化のみをして、出現した最適化項目数を数
えて目的プログラムを作り(ステップ107)、メツセ
ージから大域的最適化をするかどうかユーザが判断する
(ステップ108)、この際、前のコンパイル時の情報
を最大限活用して、大域的な最適化項目の検出から処理
を開始し、改めて目的プログラムを作る。
大域的最適化の可能性が大きくても、ユーザがコンパイ
ル時間の短いことを望み、大域的最適化を望まなければ
、しないようにする、オプシミンによって、いろいろな
処理の仕方が可能になる。
以上の方法により、時間のかかる大域的な最適化項目の
検出を大域的最適化の可能性が大きそうなプログラムに
ついてのみ、行なうことが可能となる。
大域的最適化の可能性が大きい原始プログラムに対して
は、目的プログラムを2度作ることになるが、割合とし
ては、少ないことが予想されるので、多数のプログラム
に対しての平均的な処理速度は向上する。
また、上記の方法は、最適化に必要な領域があふれた場
合の処理にも、適用できる。このような場合の処理は、
コンパイラによって異なっている。
領域再構成して、最適化をするものがあるが、これは処
理のオーバーヘッドともいえる。特に、最適化の可能性
の少ないプログラムに対しては、そうである。
最適化に必要な領域があふれた場合、最適化していない
目的プログラムを出力する。上記の方法と同様にして、
最適化の可能性ありとみられるプログラムについてのみ
、再コンパイルをして領域を再構成し、最適化をする。
以上で述べた方法と似ているが、最適化項目を局所・大
域という分けかたではなく、更に細かい種類に分けて、
出現個数を数えて利用する方法について、以下に述べる
この方法は、修正したプログラムの再コンパイル時、あ
るいは、複数のプログラムについての情報があって、同
系統のプログラムをコンパイルする時に利用できる。
一般に、最適化は種類によって処理の仕方が異なってお
り、複数の最適化を実現するために何度もプログラムを
走査しなければならない、しかし。
例えば、ループが1個もないプログラムにループ最適化
の処理を施しても、最適化項目は検出されず、効果もな
い。
以下、この方法を、複写伝播と、定数畳み込みと、ルー
プ最適化をする最適化部をもつコンパイラに例をとり、
第6図により説明する。
プログラムのコンパイル時、最適化部で処理をする際、
最適化項目を検出し、最適化変換する毎に、最適化の種
類別の出現個数を数える。この結果を第7図に示すよう
に、最適化情報として外部ファイルに設定する(ステッ
プ110)。
このプログラムを若干修正して再コンパイルするとする
。前述の最適化情報ファイルを参照すると、ループ最適
化の回数が0回であったことがわかるので、ループ最適
化をするルーチンを呼ばないで処理をする(ステップ1
11)。個々のプログラムを再コンパイルする際、出現
の可能性の少ない最適化項目を検出する処理はせず、有
効な最適化処理のみをするのである。
一般に、プログラムの形態は、その用途によって、ある
傾向をもつ。例えば、科学技術計算プログラムなら、配
列がよく使われ、システム・プログラムなら、ポインタ
がよく使われる。似たような用途で、同一グループのユ
ーザが作成する同系統のプログラムの傾向がわかってい
れば、有効な最適化処理のみをすることができる。
そのために、複数のプログラムについての最適化情報を
利用する。これには、複数のプログラム用のファイルに
直接最適化情報を設定する仕方と、個々のプログラムの
最適化情報ファイルのデータを足しあわせて、利用する
仕方とがある。
新しく作成した原始プログラムを短時間でコンパイルし
たい時には、同系統の複数のプログラムの最適化情報フ
ァイルを参照すればよい。出現個数の少ない最適化項目
を検出する処理はせず、有効な最適化処理のみをするの
である。
最適化情報として、最適化の種類毎に使用した領域の量
を設定して利用する方法もある。
最適化に必要な領域があふれた場合の処理の一方法は前
述した。ここでは、再コンパイル時に領域を構成するを
述べる。
領域を有効に使うため、領域があふれた最適化の種類の
領域に、使用した領域が少なかった最適化の種類の分を
まわしたい。領域についての最適化情報から、最適化処
理を始める前に、これが行なえて、領域あふれが防げる
新しく作成した原始プログラムをコンパイルする際には
、同系統の複数のプログラムの最適化の種類毎に使用し
た領域の情報から、領域を有効に構成すればよい。
関数呼び出しや、アドレスを取られている変数等を最適
化の対象とすると副作用が生じる。これらを最適化の対
象とするか否かはコンパイラによって決まる。しかし、
最適化の対象とするためには、複雑な解析処理がいる。
最適化の対象としないコンパイラの処理は単純で済むが
、最適化の効果は当然低い、このような場合でも、副作
用の要因を原始プログラムから取り除けば、最適化の可
能性は増す。
最適化処理中に副作用の要因を検出したら、これの原始
プログラム中での出現箇所を調べ、コンパイル終了時に
この情報をメツセージとして出す。
ユーザは副作用の要因を修正しても影響のないものかど
うか判断する。修正して、再コンパイルする際には、最
適化の可能性が広がっているため、最適化の効果は大き
くなる。
[発明の効果] 本発明によって、コンパイラの最適化部の処理時間が短
縮される。また、この最適化部は原始プログラムの記述
言語に依存しないため、簡単に設計できる。
以下、本発明の効果列を記する。
中間語変換仕様を設定したことから、処理に比較的時間
がかかり、大きな領域を要する中間語の走査・変換を効
率良く行なえる。
具体的には、大域的最適化の際、1)変換した中間語を
更に変換するといった無駄をなくし、2)大域的なデー
タフロー解析のための局所属性の収集を、1回の中間語
走査により行なう。
これらの効果で、最適化処理に要する時間がどれだけ減
少するかを以下に示す、ただし最適化の効果はコンパイ
ルするプログラムで決まるものなので、ある特定のに対
する処理時間の減少割合を示すことになる。
従来技術でこのプログラムを最適化処理すると。
中間語変換を3回行ううちで、既に変換された中間語を
さらに変換する割合が1回あると仮定する。
本発明により、中間語変換は3回から2回の割合に減少
する。
また、5種類の大域的最適化を実現するとしたら、従来
技術で5回のデータフロー解析をするたびに、中間語走
査をしていたのが、本発明では1回の中間語走査で済む
従来技術で、最適化処理全体にかかる時間を1として、
その内で中間語変換にかかる時間を0.2、中間語走査
にかかる時間を0.35とする。
以上により、本発明の最適化処理は、従来技術の65%
の処理時間で行えることが計算される。
大域的データフロー解析は直接には中間語を参照しない
ため、中間語の種類、言い換えれば原始プログラムの記
述言語に依存しないで大域的データフロー解析部を設計
する事が可能となる。他の言語用のコンパイラの作成時
に、大域的データフロー解析部を利用できるため、開発
工程が減る。
大域属性を設定する領域を共用することで、大域属性を
小さな領域に有効に設定することを可能とする。これに
より、属性の領域あふれによる最適化項目の検出をしそ
こなうことが、防げる。
プログラム内の局所的な最適化項目の出現個数から、大
域的最適化の可能性を類推して、可能性のありそうなプ
ログラムに対してのみ、1)大域的最適化が行なえ、2
)最適化に必要な領域があふれた場合に領域再構成を行
なえる。これにより、多数のプログラムに対してのコン
パイル時間を平均的に短くすることが可能となる。
最適化の種類別の出現個数から、再コンパイル時に有効
な最適化処理が行なえる。
また、この情報を複数のプログラムに関して積算するこ
とにより、同系統のプログラムのコンパイル時に有効な
最適化処理が行なえる。
最適化の種類別に使用した領域の量から、再コンパイル
時あるいは同系統のプログラムのコンパイル時に有効な
領域設定が行なえる。
副作用の解析をしない最適化コンパイラにおいて、副作
用の要因を原始プログラムから取吠除くメツセージを出
すことで、比較的単純な処理で。
最適化の可能性を拡げることができる。
【図面の簡単な説明】
第1図(a)はコンパイラの処理手段、同図(b)は本
最適化コンパイラの最適化部の処理手順を示すフローチ
ャート、第2図は基本ブロック間の制御の渡る順を矢印
で示したプログラムの例、第3図は本発明で実施する最
適化の例、第4図は大域属性テーブルと大域属性管理用
テーブルを示す図、第5図は出現した最適化項目数から
ユーザが更に最適化とするか否かを判断する方法の処理
手順を示すフローチャート、第6図は再コンパイル時に
、最適化情報から有効な最適化処理を選択・実行する処
理手順を示すフローチャート、第7図は最適化情報(最
適化の種類毎の最適化項目の出現個数)の−例を示す図
である。 第7TA 第3周 〔榎 C’kp) 呆船ci+ 第2因 第 目 CC) ゑ漁バ伎

Claims (1)

  1. 【特許請求の範囲】 1、コンパイラの最適化処理において、最適化項目を検
    出し、これを実現する中間語変換仕様を作業用ファイル
    に設定し、最適化項目の検出が終り中間語変換仕様が決
    定してから、中間語変換することを特徴とする最適化コ
    ンパイラ。 2、コンパイラの最適化処理において、中間語を1回走
    査してプログラムの局所的な情報を収集し、改めて中間
    語を走査することなく、大域的な解析をすることを特徴
    とする最適化コンパイラ。 3、コンパイラの最適化処理において、最適化の大域的
    データフロー解析を原始プログラムの記述言語に依存し
    ないで設計することを特徴とする最適化コンパイラ。 4、コンパイラの最適化処理において、複数種類の大域
    属性を設定する領域を共用することを特徴とする最適化
    コンパイラ。 5、コンパイラの最適化処理において、プログラム内の
    最適化項目の出現個数を数えて、この結果から更に最適
    化するか否かを決定することを特徴とする最適化コンパ
    イラ。 6、コンパイラの最適化の処理において、プログラム内
    の最適化項目の出現個数を数えて、この結果から大域属
    性に関するテーブルを再構成するか否かを決定すること
    を特徴とする最適化コンパイラ。 7、プログラムの最適化に関する情報を外部ファイルに
    蓄積し、再コンパイル時にこの情報を利用して所定の処
    理をおこなうことを特徴とする最適化コンパイル方法。 8、複数のプログラムについて上記の情報を抽出し積算
    した情報を利用して処理することを特徴とする第7項の
    最適化コンパイル方法。 9、上記情報の内容が、最適化の種類別の出現個数を累
    計したものであることを特徴とする第7項の最適化コン
    パイル方法。 10、上記情報の内容が、最適化の種類別に使用した領
    域の量であることを特徴とする第7項の最適化コンパイ
    ル方法。 11、上記処理は、出現頻度の高い最適化の種類の処理
    であることを特徴とする第7項の最適化コンパイル方法
    。 12、上記処理のうち、使用した領域の量が多い最適化
    の種類の処理のために多くの領域を割当てることを特徴
    とする第7項の最適化コンパイル方法。 13、原始プログラム中の最適化の対象を制限する要因
    を指摘するメッセージを出すことを特徴とする最適化コ
    ンパイル方法。
JP23232588A 1988-09-19 1988-09-19 最適化コンパイラ及びコンパイル方法 Pending JPH0281137A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23232588A JPH0281137A (ja) 1988-09-19 1988-09-19 最適化コンパイラ及びコンパイル方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23232588A JPH0281137A (ja) 1988-09-19 1988-09-19 最適化コンパイラ及びコンパイル方法

Publications (1)

Publication Number Publication Date
JPH0281137A true JPH0281137A (ja) 1990-03-22

Family

ID=16937429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23232588A Pending JPH0281137A (ja) 1988-09-19 1988-09-19 最適化コンパイラ及びコンパイル方法

Country Status (1)

Country Link
JP (1) JPH0281137A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396631A (en) * 1993-03-01 1995-03-07 Fujitsu Limited Compiling apparatus and a compiling method
US6233732B1 (en) 1993-06-17 2001-05-15 Fujitsu Limited Compiling system using intermediate codes to store a plurality of values

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396631A (en) * 1993-03-01 1995-03-07 Fujitsu Limited Compiling apparatus and a compiling method
US6233732B1 (en) 1993-06-17 2001-05-15 Fujitsu Limited Compiling system using intermediate codes to store a plurality of values

Similar Documents

Publication Publication Date Title
US5920723A (en) Compiler with inter-modular procedure optimization
US7725883B1 (en) Program interpreter
JP3311462B2 (ja) コンパイル処理装置
US7743368B2 (en) Method and apparatus for providing class hierarchy information for function devirtualization
US7185327B2 (en) System and method for optimizing operations via dataflow analysis
JPH01194028A (ja) データベース処理方法および装置
JP2003067185A (ja) アプリケーション編集装置、データ処理方法及びプログラム
JPH06103463B2 (ja) コード生成方法
US7765524B2 (en) Method and system for global constant management
JP3813087B2 (ja) プログラム変換方法、コンピュータ装置及びプログラム
JPS6325733A (ja) コンパイラ処理方式
WO2011106006A1 (en) Optimization method and apparatus
CN109901840B (zh) 一种线程间冗余删除的异构编译优化方法
KR20220049296A (ko) 로그 기반 워크플로우 생성 방법 및 그 장치
Rompf et al. A SQL to C compiler in 500 lines of code
JPH0281137A (ja) 最適化コンパイラ及びコンパイル方法
JP5038760B2 (ja) ソースコード変換装置及びソースコード変換方法
CN117271011B (zh) 一种建筑信息模型数据的转换处理系统和方法
JP3276479B2 (ja) コンパイル方式
JP2000231478A (ja) ソフトウェアの自動生成装置および方法、記録媒体
JP3580394B2 (ja) プログラム変換装置及びプログラム変換方法
Kutepov et al. Implementation of functional parallel typified language (FPTL) on multicore computers
JPH0689187A (ja) インライン展開最適化方法
Ishimura et al. Just-In-Time Compiler System in Aspect-Oriented Programming based Building Block Platform for constructing Domain-Specific Language for HPC Application
Loidl et al. Semi-explicit parallel programming in a purely functional style: GpH