JPH06202875A - インライン展開による最適化を行うコンパイラ - Google Patents

インライン展開による最適化を行うコンパイラ

Info

Publication number
JPH06202875A
JPH06202875A JP36061992A JP36061992A JPH06202875A JP H06202875 A JPH06202875 A JP H06202875A JP 36061992 A JP36061992 A JP 36061992A JP 36061992 A JP36061992 A JP 36061992A JP H06202875 A JPH06202875 A JP H06202875A
Authority
JP
Japan
Prior art keywords
control flow
inline expansion
compiler
weighting
function
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
JP36061992A
Other languages
English (en)
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 JP36061992A priority Critical patent/JPH06202875A/ja
Publication of JPH06202875A publication Critical patent/JPH06202875A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 関数呼出し毎のインライン展開の要否の決定
を可能とし、実行イメージに合ったインライン展開を行
い、実用的かつ効率的なインライン展開を可能とする。 【構成】 制御フロー重み付け手段5は、制御フロー解
析手段3の解析結果に基づいて制御フローを構成する各
部分制御フローの実行回数を推測し、その実行回数に基
づいて各部分制御フローに対する重み付けを行う。オブ
ジェクト生成手段7は、制御フロー重み付け手段5によ
る重み付けの結果を参照して各関数呼出しによって呼び
出される関数のインライン展開の要否を決定し、その決
定を反映したオブジェクトプログラム9を生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンパイラに関し、特
に最適化の一手法である「関数のインライン展開」を行
うコンパイラ(インライン展開による最適化を行うコン
パイラ)に関する。
【0002】
【従来の技術】従来、インライン展開による最適化を行
うコンパイラは、以下のようにしてインライン展開を行
うべきか否か(インライン展開の要否)を決定してい
た。
【0003】 一の手法では、インライン展開の要否
の指示が他の種類の最適化の要否の指示とともに最適化
オプション(オブジェクトプログラムの実行効率をどこ
まで向上させるかに基づく最適化オプション)によって
指定され、その最適化オプションに基づいてインライン
展開の要否が決定される。この最適化オプションの指定
は、プログラム全体に対して行われる(関数呼出し毎に
行われることはない)。最適化オプションには、最適化
レベルを指定することができるものが多い。
【0004】 他の手法では、コンパイル時にインラ
イン展開のみについての要否の指示が所定のオプション
によって指定され、そのオプションに基づいてインライ
ン展開の要否が決定される。この場合にも、このオプシ
ョンの指定は、プログラム全体に対して行われ、関数呼
出し毎に行われることはない。
【0005】なお、プログラム全体に対してインライン
展開を行うべきことが指定された場合には、各関数のイ
ンライン展開を行うべきか否かがオブジェクトプログラ
ムのレベルでの当該関数の大きさ(当該関数のオブジェ
クトサイズ)によって決定されていた。
【0006】上述のように、従来の技術では、インライ
ン展開の要否の決定は、関数呼出し毎ではなくプログラ
ム全体を対象として行われており(インライン展開が画
一的に適用されており)、関数のオブジェクトサイズと
いう要因しか考慮されていなかった(関数の呼出し回数
等の他の要因は全く考慮されていなかった)。
【0007】また、上述した従来の技術に対する新技術
として公開されているものには、以下に示す技術があ
る。以下、上述した従来の技術を「旧従来技術」とい
い、以下に示す技術を「新従来技術」という。
【0008】 「特開平3−99330(手続きイン
ライン展開方式)」に係る特許出願によって示される新
従来技術:中間テキストのレベルでカウントされた関数
の静的な参照回数(中間テキストに出現する当該関数の
参照回数)を使用して、その関数のインライン展開の要
否を決定する。
【0009】 「特開平1−118931(プログラ
ム変換方式)」に係る特許出願によって示される新従来
技術:インライン展開による最適化を行わずに仮の実行
プログラムを生成して実行し、その実行プログラムの実
行によって得られる動的な(実際の)関数の呼出し回数
やループの実行回数(ループ回数)を使用してインライ
ン展開の要否を決定する。
【0010】
【発明が解決しようとする課題】上述したように、旧従
来技術では、インライン展開の要否の決定がプログラム
全体を対象として行われており、関数のオブジェクトサ
イズ以外の要因(関数の呼出し回数等の要因)が考慮さ
れていない。したがって、オブジェクトプログラムのサ
イズの増大等が生じてインライン展開が真の意味での最
適化に寄与しない可能性がある(インライン展開によっ
てオブジェクトプログラムの実行効率を逆に落とすこと
がある)という欠点があった。
【0011】また、「特開平3−99330」に係る特
許出願によって示される新従来技術では、インライン展
開の要否を決定する際に新たに関数の参照回数という要
因が考慮されているが、この参照回数は中間テキストに
出現する参照回数であり実際の関数の呼出し回数とは異
なるものである。したがって、ある関数に対する関数呼
出しが中間テキスト中に何度も現れれば実際には一度も
その関数が呼び出されなくてもインライン展開が行われ
てしまい(実行イメージに合わないインライン展開によ
る最適化が行われることとなり)、無用にオブジェクト
プログラムのサイズが大きくなってオブジェクトプログ
ラムの実行効率の低下を招く可能性があるという欠点が
あった。
【0012】さらに、「特開平1−118931」に係
る特許出願によって示される新従来技術では、仮の実行
プログラムを実際に実行した結果を使用してインライン
展開の要否が決定されており、「仮の実行プログラムの
生成および実行」という大掛かりな処理(一般的なコン
パイラが持つ通常の最適化処理の範囲を逸脱する処理)
が必要になる。したがって、実用的かつ効率的なインラ
イン展開による最適化を行うことができないという欠点
があった。
【0013】本発明の目的は、上述の点に鑑み、関数呼
出し毎にインライン展開の要否の決定を行うことを可能
とし、実行イメージに合ったインライン展開を行うこと
ができ、実用的かつ効率的なインライン展開を可能とす
る「インライン展開による最適化を行うコンパイラ」を
提供することにある。
【0014】
【課題を解決するための手段】本発明のインライン展開
による最適化を行うコンパイラは、制御フロー解析手段
の解析結果に基づいて制御フローを構成する各部分制御
フローの実行回数を推測しその実行回数に基づいて各部
分制御フローに対する重み付けを行う制御フロー重み付
け手段と、この制御フロー重み付け手段による重み付け
の結果を参照して各関数呼出しによって呼び出される関
数のインライン展開の要否を決定しその決定を反映した
オブジェクトプログラムを生成するオブジェクト生成手
段とを有する。
【0015】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0016】図1は、本発明のインライン展開による最
適化を行うコンパイラの第1の実施例(コンパイラ1
0)の構成等を示すブロック図である。
【0017】コンパイラ10は、フロントエンド(字句
解析部,構文解析部および意味解析部等の総称)1と、
コンパイラ中間テキスト2と、制御フロー解析手段3
と、制御フロー情報付き中間テキスト4と、制御フロー
重み付け手段5と、制御フロー重み情報付き中間テキス
ト6と、オブジェクト生成手段7とを含んで構成されて
いる。また、コンパイラ10は、ソースプログラム8を
入力して、オブジェクトプログラム9を出力する。
【0018】図2は、制御フロー重み付け手段5の詳細
な構成等を示すブロック図である。制御フロー重み付け
手段5は、制御フロー情報付き中間テキスト4を入力す
るループ検出部51と、ループ回数判定部52と、制御
フロー重み情報付き中間テキスト6を出力する制御フロ
ー重み付け部53とを含んで構成されている。
【0019】図3は、オブジェクト生成手段7の詳細な
構成等を示すブロック図である。オブジェクト生成手段
7は、関数オブジェクトサイズSを出力する呼出し関数
サイズ算出部71と、制御フロー重み情報付き中間テキ
ストによって示される部分制御フローの重み値Nと関数
オブジェクトサイズSとを入力してインライン展開判定
値Jを出力するインライン展開判定値算出部72と、イ
ンライン展開判定値Jを入力する関数インライン展開部
73とを含んで構成されている。なお、オブジェクト生
成手段7は、インライン展開処理に関する機能(図3中
の破線の枠内の機能)以外にもオブジェクトプログラム
9の生成に関する多くの機能を有している。
【0020】次に、このように構成された本実施例のイ
ンライン展開による最適化を行うコンパイラ(コンパイ
ラ10)の動作について説明する。
【0021】フロントエンド1は、ソースプログラム8
を入力し、従来技術と同様の方法で処理(字句解析,構
文解析および意味解析等)を行い、コンパイラ中間テキ
スト2を出力する。
【0022】制御フロー解析手段3は、コンパイラ中間
テキスト2を入力し、従来技術と同様の方法で制御フロ
ー解析を行い、制御フロー情報付き中間テキスト4(制
御フロー解析の結果である制御フロー情報を有する中間
テキスト)を出力する。
【0023】制御フロー重み付け手段5内の各部は、以
下に示すような処理を行う(図2参照)。
【0024】ループ検出部51は、制御フロー情報付き
中間テキスト4を入力し、制御フロー情報によって示さ
れる制御フローからループ(ループ構造)を検出する。
【0025】ループ回数判定部52は、ループ検出部5
1によって検出されたループの各々について、次のよう
にしてループ回数(ループの実行回数)を求める。
【0026】 処理対象のループを構成する条件分岐
テキストを探し、その条件分岐テキストにおける条件が
「変数V 比較演算 定数C1」という形であるか否か
を判定する(この判定は、「静的にループ回数を求める
ことができるか否か」の判定となる)。
【0027】 当該条件が「変数V 比較演算 定数
C1」という形である場合には、処理対象のループの入
口から制御フローをさかのぼり、変数Vに値を設定して
いるテキストを探す。
【0028】 そのテキストにおいて、変数Vに設定
される値が定数C2であり、ループを制御するインダク
ション変数の増減値が定数C3である場合に、それらの
定数C2およびC3と当該条件中の定数C1とを比較
し、その比較に基づいてループ回数L(定数値)を求め
る。
【0029】 以上のようにして静的にループ回数L
を求めることができない場合(の判定で当該条件が
「変数V 比較演算 定数C1」という形でない場合,
において変数Vに設定される値が定数でない場合,ま
たはにおいてループを制御するインダクション変数の
増減値が定数でない場合)には、コンパイラ10におけ
るループ回数のデフォルト値であるデフォルトループ回
数αをループ回数Lとする。
【0030】制御フロー重み付け部53は、ループ回数
判定部52によって求められたループ回数Lを用いて、
以下に示すようにして、制御フローを構成する各部分制
御フローに対する重み付け(重み値Nの設定)を行う。
なお、部分制御フローとは、最初のテキストから最後の
テキストまでに分岐を示すテキストおよびラベルを示す
テキストが存在せず連続して実行される制御フロー中の
部分をいう。
【0031】 処理対象の部分制御フローがループに
含まれない場合(ループの外側に存在する場合)には、
その部分制御フローの重み値Nを1とする。
【0032】 処理対象の部分制御フローがネスト数
n(nは正整数)のループ群に含まれる場合には、その
部分制御フローの重み値NをΠLi(L1×L2×…×
Ln。i=1,2,…,nでありLiはi層目のネスト
のループのループ回数)とする。
【0033】すなわち、制御フロー重み付け部53は、
部分制御フローに関与するループ(部分制御フローを含
むループ)についてのループ回数およびネスト数(部分
制御フローがループに含まれるか否かという情報を含
む)を使って当該部分制御フローの実行回数を推測し、
ループをキーとする重み付け(重み値Nの設定)を当該
部分制御フローに対して行う。
【0034】制御フロー重み付け部53は、上述のよう
にして設定した重み値Nを示す情報を有する中間テキス
トである制御フロー重み情報付き中間テキスト6を出力
する。
【0035】オブジェクト生成手段7は、従来通り、レ
ジスタ割付け,コード生成および最適化等の処理を行
う。オブジェクト生成手段7内の図3に示す各部は、こ
のような処理の過程で、最適化処理の中の1つであるイ
ンライン展開処理を行う。このインライン展開処理は、
最適化処理の過程で関数呼出しが検出された場合に起動
され、以下に示すようにして行われる。
【0036】呼出し関数サイズ算出部71は、処理対象
の関数呼出しによって呼び出される関数を探し、その関
数のオブジェクトサイズSを算出する。
【0037】インライン展開判定値算出部72は、当該
関数呼出しを含む部分制御フローの重み値N(制御フロ
ー重み付け手段5によって求められた値)と当該関数呼
出しによって呼び出される関数のオブジェクトサイズS
とに基づいて、インライン展開判定値(インライン展開
の要否を判定するための値)Jを算出する。NとSとか
らJを導く算出式は、ソースプログラム8の対象言語
(ソースプログラム8を記述するプログラム言語)の特
徴やオブジェクトプログラム9が実行されるターゲット
マシンの特徴等に基づいて決定される。
【0038】関数インライン展開部73は、インライン
展開判定値Jとコンパイラ10におけるインライン展開
要否判定用のデフォルト値であるインライン展開要否指
標値βとを比較する。その比較で「J>β」ならば、処
理対象の関数呼出しを「インライン展開の対象とした方
がよい関数呼出し」とみなして、その関数呼出しを関数
(その関数呼出しによって呼び出される関数)の本体の
オブジェクトテキストで置換する。
【0039】オブジェクト生成手段7は、以上のような
インライン展開処理を行った上で、オブジェクトプログ
ラム9を出力する。
【0040】なお、本実施例に係るコンパイラ10で
は、制御フロー重み付け手段5が請求項2記載の発明に
おける制御フロー重み付け手段で実現される場合につい
て述べた。しかし、制御フロー解析手段3の解析結果に
基づいて何らかの方法で部分制御フローの実行回数を推
測して各部分制御フローに対する重み付けを行うもので
あれば、請求項1記載の発明における制御フロー重み付
け手段は本実施例における制御フロー重み付け手段5に
限られるものではない。
【0041】また、本実施例に係るコンパイラ10で
は、オブジェクト生成手段7が請求項3記載の発明にお
けるオブジェクト生成手段で実現される場合について述
べた。しかし、重み付けの結果を参照して各関数呼出し
によって呼び出される関数のインライン展開の要否を決
定するものであれば、請求項1記載の発明におけるオブ
ジェクト生成手段は本実施例におけるオブジェクト生成
手段7に限られるのものではない。
【0042】図4は、本発明のインライン展開による最
適化を行うコンパイラの第2の実施例(コンパイラ2
0)の構成等を示すブロック図である。
【0043】コンパイラ20は、フロントエンド1と、
コンパイラ中間テキスト2と、制御フロー解析手段3
と、制御フロー情報付き中間テキスト4と、制御フロー
重み付け手段5と、制御フロー重み情報付き中間テキス
ト6と、オブジェクト生成手段7と、オプション情報1
1とを含んで構成されている。また、コンパイラ20
は、ソースプログラム8を入力して、オブジェクトプロ
グラム9を出力する。すなわち、本実施例(第2の実施
例)に係るコンパイラ20は、図1に示す第1の実施例
に係るコンパイラ10に対してオプション情報11が追
加された構成になっている。したがって、オプション情
報11に関する処理以外は、本実施例における処理と第
1の実施例における処理とは同様である。この意味で、
図1と図4とで対応する構成要素(コンパイラ10およ
び20自身は除く)については同一の符号を用いて示し
ている。
【0044】なお、図2および図3は、本実施例の制御
フロー重み付け手段5およびオブジェクト生成手段7の
詳細な構成等を示すブロック図でもある。
【0045】次に、このように構成された本実施例のイ
ンライン展開による最適化を行うコンパイラ(コンパイ
ラ20)の動作について説明する。基本的な動作の流れ
はコンパイラ10の動作の流れと同様であるので、ここ
ではコンパイラ10の動作と異なる動作についてのみ列
挙する。
【0046】 フロントエンド1は、ソースプログラ
ム8を入力してコンパイラ中間テキスト2を出力する際
に、コンパイラ20の起動時にユーザによって与えられ
たオプション(指定ループ回数および指定指標値)を有
するオプション情報11を生成する。
【0047】 制御フロー重み付け手段5内のループ
回数判定部52は、静的にループ回数を決めることがで
きない場合に、オプション情報11に基づいてデフォル
トループ回数αを求める。すなわち、ユーザによって指
定された指定ループ回数をデフォルトループ回数αとし
て使用する。
【0048】 オブジェクト生成手段7内の関数イン
ライン展開部73は、オプション情報11に基づいてイ
ンライン展開要否指標値βを取得して、そのインライン
展開要否指標値βとインライン展開判定値Jとの比較を
行う。すなわち、ユーザによって指定された指定指標値
をインライン展開要否指標値βとして使用する。
【0049】このように、本実施例では、ユーザはコン
パイル時にソースプログラム8の特性やユーザの要求等
に応じてデフォルトループ回数やインライン展開要否指
標値を指定することができる。
【0050】なお、ユーザによってオプションとして与
えられる情報は、本実施例のように指定ループ回数およ
び指定指標値の両方である場合だけではなく、指定ルー
プ回数および指定指標値のいずれか一方だけである場合
も許容される。
【0051】
【発明の効果】以上説明したように本発明は、旧従来技
術においてプログラム全体を対象として行われていたイ
ンライン展開の要否の決定を関数呼出し毎に行うことに
より、より詳細な情報によって真の意味での最適化(イ
ンライン展開による最適化)の実現の可能性が高くなる
という効果がある。
【0052】また、関数呼出し毎にインライン展開を行
うか否かを決定する要因として制御フロー解析に基づい
て求められる部分制御フローの実行回数を使っているの
で、実際の実行イメージに合わない最適化(「特開平3
−99330」に係る特許出願によって示される中間テ
キスト上の関数の参照回数を使う最適化等)や通常のコ
ンパイラの最適化処理の範囲を逸脱する処理が必要にな
る最適化(「特開平1−118931」に係る特許出願
によって示される大掛かりな仕組みを用いる最適化等)
を避けることができ、実行イメージに適合するとともに
実用的かつ効率的なものとなる最適化(インライン展開
による最適化)を行うことができるという効果がある。
【0053】さらに、インライン展開の要否のキーとな
る値をユーザがオプションによって指定することを可能
とすることにより(請求項4および請求項5参照)、ソ
ースプログラムの特性やユーザの要求等に応じたインラ
イン展開による最適化を行うことができるようになると
いう効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例の構成等を示すブロック
図である。
【図2】図1および図4中の制御フロー重み付け手段の
詳細な構成等を示すブロック図である。
【図3】図1および図4中のオブジェクト生成手段の詳
細な構成等を示すブロック図である。
【図4】本発明の第2の実施例の構成等を示すブロック
図である。
【符号の説明】
1 フロントエンド 2 コンパイラ中間テキスト 3 制御フロー解析手段 4 制御フロー情報付き中間テキスト 5 制御フロー重み付け手段 6 制御フロー重み情報付き中間テキスト 7 オブジェクト生成手段 8 ソースプログラム 9 オブジェクトプログラム 10,20 コンパイラ 11 オプション情報

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 制御フロー解析手段の解析結果に基づい
    て制御フローを構成する各部分制御フローの実行回数を
    推測し、その実行回数に基づいて各部分制御フローに対
    する重み付けを行う制御フロー重み付け手段と、 この制御フロー重み付け手段による重み付けの結果を参
    照して各関数呼出しによって呼び出される関数のインラ
    イン展開の要否を決定し、その決定を反映したオブジェ
    クトプログラムを生成するオブジェクト生成手段とを有
    することを特徴とするインライン展開による最適化を行
    うコンパイラ。
  2. 【請求項2】 重み付けの対象の部分制御フローに関与
    するループについてのループ回数およびネスト数を使っ
    て当該部分制御フローの実行回数を推測し、ループをキ
    ーとする重み付けを当該部分制御フローに対して行う前
    記制御フロー重み付け手段を有することを特徴とする請
    求項1記載のインライン展開による最適化を行うコンパ
    イラ。
  3. 【請求項3】 処理対象の関数呼出しを含む部分制御フ
    ローに対する前記制御フロー重み付け手段による重み付
    けの結果と当該関数呼出しによって呼び出される関数の
    オブジェクトサイズとを使った算出式を用いてインライ
    ン展開判定値を算出し、そのインライン展開判定値とイ
    ンライン展開要否指標値との比較に基づいて当該関数呼
    出しによって呼び出される関数のインライン展開の要否
    を決定する前記オブジェクト生成手段を有することを特
    徴とする請求項1記載のインライン展開による最適化を
    行うコンパイラ。
  4. 【請求項4】 重み付けの対象の部分制御フローに関与
    するループについてのループ回数が静的に決まらない場
    合に使用されるデフォルトループ回数をオプション情報
    に基づいて取得する前記制御フロー重み付け手段を有す
    ることを特徴とする請求項2記載のインライン展開によ
    る最適化を行うコンパイラ。
  5. 【請求項5】インライン展開要否指標値をオプション情
    報に基づいて取得する前記オブジェクト生成手段を有す
    ることを特徴とする請求項3記載のインライン展開によ
    る最適化を行うコンパイラ。
JP36061992A 1992-12-28 1992-12-28 インライン展開による最適化を行うコンパイラ Pending JPH06202875A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36061992A JPH06202875A (ja) 1992-12-28 1992-12-28 インライン展開による最適化を行うコンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36061992A JPH06202875A (ja) 1992-12-28 1992-12-28 インライン展開による最適化を行うコンパイラ

Publications (1)

Publication Number Publication Date
JPH06202875A true JPH06202875A (ja) 1994-07-22

Family

ID=18470191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36061992A Pending JPH06202875A (ja) 1992-12-28 1992-12-28 インライン展開による最適化を行うコンパイラ

Country Status (1)

Country Link
JP (1) JPH06202875A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003322A1 (fr) * 1998-07-10 2000-01-20 Sony Corporation Procede et appareil de compilation
US7373641B2 (en) 2001-12-20 2008-05-13 International Business Machines Corporation Method, computer unit and program for converting a program
US7624387B2 (en) 2003-04-10 2009-11-24 Panasonic Corporation Compiler, program product, compilation device, communication terminal device, and compilation method
US9244666B2 (en) 2014-03-20 2016-01-26 International Business Machines Corporation Globally inline a callee with high cost-effectiveness on the basis only of profile information in a call graph
US9383980B2 (en) 2013-02-22 2016-07-05 International Business Machines Corporation Determining a method to inline using an actual footprint calculation
US9760354B2 (en) 2015-04-28 2017-09-12 Fujitsu Limited Information processing apparatus and compiling method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01103742A (ja) * 1987-10-16 1989-04-20 Hitachi Ltd 最適コンパイル方式
JPH01118931A (ja) * 1987-11-02 1989-05-11 Hitachi Ltd プログラム変換方式
JPH04273533A (ja) * 1991-02-28 1992-09-29 Hokkaido Nippon Denki Software Kk 翻訳プログラムの手続きインライン展開方式
JPH04333633A (ja) * 1990-12-19 1992-11-20 Toray Ind Inc モールヤーン及びその製造方法
JPH04336333A (ja) * 1991-05-13 1992-11-24 Nec Corp 原始プログラムの自動インライン展開方式

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01103742A (ja) * 1987-10-16 1989-04-20 Hitachi Ltd 最適コンパイル方式
JPH01118931A (ja) * 1987-11-02 1989-05-11 Hitachi Ltd プログラム変換方式
JPH04333633A (ja) * 1990-12-19 1992-11-20 Toray Ind Inc モールヤーン及びその製造方法
JPH04273533A (ja) * 1991-02-28 1992-09-29 Hokkaido Nippon Denki Software Kk 翻訳プログラムの手続きインライン展開方式
JPH04336333A (ja) * 1991-05-13 1992-11-24 Nec Corp 原始プログラムの自動インライン展開方式

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003322A1 (fr) * 1998-07-10 2000-01-20 Sony Corporation Procede et appareil de compilation
US7373641B2 (en) 2001-12-20 2008-05-13 International Business Machines Corporation Method, computer unit and program for converting a program
US7624387B2 (en) 2003-04-10 2009-11-24 Panasonic Corporation Compiler, program product, compilation device, communication terminal device, and compilation method
US9383980B2 (en) 2013-02-22 2016-07-05 International Business Machines Corporation Determining a method to inline using an actual footprint calculation
US9244666B2 (en) 2014-03-20 2016-01-26 International Business Machines Corporation Globally inline a callee with high cost-effectiveness on the basis only of profile information in a call graph
US9760354B2 (en) 2015-04-28 2017-09-12 Fujitsu Limited Information processing apparatus and compiling method

Similar Documents

Publication Publication Date Title
US6412105B1 (en) Computer method and apparatus for compilation of multi-way decisions
JP3311462B2 (ja) コンパイル処理装置
US6301706B1 (en) Compiler method and apparatus for elimination of redundant speculative computations from innermost loops
JP3790683B2 (ja) コンピュータ装置、その例外処理プログラム及びコンパイル方法
US7458065B2 (en) Selection of spawning pairs for a speculative multithreaded processor
US20020013937A1 (en) Register economy heuristic for a cycle driven multiple issue instruction scheduler
JPH06314203A (ja) コンパイラの最適化方法および装置
US6041181A (en) Method of, system for, and computer program product for providing quick fusion in WHERE constructs
US5596732A (en) Method of optimizing instruction sequence of compiler
JPH06324881A (ja) メモリデータの重なり判定機能を備えたコンパイラ装置
US8117604B2 (en) Architecture cloning for power PC processors
JPH06202875A (ja) インライン展開による最適化を行うコンパイラ
JPH10116197A (ja) プログラム解析方法
JPH09160784A (ja) 並列化コンパイル方式
JPH01214936A (ja) 最適化コンパイラ
KR100655275B1 (ko) 조건 분기 명령어의 컴파일 방법
JPH0573335A (ja) プログラムの自動インライン展開方式
JP2001175617A (ja) コンパイラ並列化方法
JPH07141196A (ja) ループ外分岐を持つループの展開方式
Dai et al. Load-store optimization for software pipelining
JPH10312291A (ja) コンパイラ装置
JP2003067195A (ja) 最適化コンパイル方法及び最適化コンパイル装置
JPH03268140A (ja) 副作用防止最適化方式
JP3311774B2 (ja) コンパイラ装置
JPH10326193A (ja) インライン展開関数の最適化のためのコンパイル方法