JPH04336333A - 原始プログラムの自動インライン展開方式 - Google Patents
原始プログラムの自動インライン展開方式Info
- Publication number
- JPH04336333A JPH04336333A JP10628891A JP10628891A JPH04336333A JP H04336333 A JPH04336333 A JP H04336333A JP 10628891 A JP10628891 A JP 10628891A JP 10628891 A JP10628891 A JP 10628891A JP H04336333 A JPH04336333 A JP H04336333A
- Authority
- JP
- Japan
- Prior art keywords
- program
- unit
- program unit
- called
- source
- 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
Links
- 238000000034 method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、高級言語で記述された
原始プログラムの、あるプログラム単位から呼び出され
るプログラム単位を、呼び出すプログラム単位の中に展
開することによる、原始プログラムの最適化を行う、原
始プログラムの自動インライン展開方式に関する。
原始プログラムの、あるプログラム単位から呼び出され
るプログラム単位を、呼び出すプログラム単位の中に展
開することによる、原始プログラムの最適化を行う、原
始プログラムの自動インライン展開方式に関する。
【0002】
【従来の技術】原始プログラムを入力し、その中のプロ
グラム単位から呼び出されるプログラム単位を、呼び出
すプログラム単位の中に展開し、展開した原始プログラ
ムを作成する原始プログラム変換プログラムにおいては
、どのプログラム単位からの、どのプログラム単位の呼
び出しをインライン展開するかは、原始プログラム変換
プログラムを起動する場合に指示するオプションあるい
は原始プログラムに利用者が挿入したインライン展開を
指示する指示行により指示していた。
グラム単位から呼び出されるプログラム単位を、呼び出
すプログラム単位の中に展開し、展開した原始プログラ
ムを作成する原始プログラム変換プログラムにおいては
、どのプログラム単位からの、どのプログラム単位の呼
び出しをインライン展開するかは、原始プログラム変換
プログラムを起動する場合に指示するオプションあるい
は原始プログラムに利用者が挿入したインライン展開を
指示する指示行により指示していた。
【0003】
【発明が解決しようとする課題】どのプログラム単位か
らの、どのプログラム単位の呼び出しを、インライン展
開するかを、原始プログラム変換プログラムを起動する
場合のオプションで指示する場合、および、原始プログ
ラムに利用者がインライン展開を指示する指示行を挿入
する場合には、利用者がプログラムの動作および振る舞
いをよく知っていて、適切な指示をしなければならない
といった欠点がある。
らの、どのプログラム単位の呼び出しを、インライン展
開するかを、原始プログラム変換プログラムを起動する
場合のオプションで指示する場合、および、原始プログ
ラムに利用者がインライン展開を指示する指示行を挿入
する場合には、利用者がプログラムの動作および振る舞
いをよく知っていて、適切な指示をしなければならない
といった欠点がある。
【0004】
【課題を解決するための手段】本発明の原始プログラム
の自動インライン展開方式は、原始プログラムを入力し
、その中のプログラム単位から呼び出されるプログラム
単位を、呼び出すプログラム単位の中に展開し、展開し
た原始プログラムを作成する原始プログラム変換プログ
ラムにおいて、前記原始プログラムを解析し、どのプロ
グラム単位からどのプログラム単位が呼び出されるかを
解析する、プログラム単位呼び出し関係解析手段と、前
記原始プログラムを解析し、各文の実行回数を推定する
文の実行回数解析手段と、前記プログラム単位呼び出し
関係解析手段と文の実行回数解析手段の結果より、どの
プログラム単位からの、どのプログラム単位の呼び出し
をインライン展開するかを決定するインライン展開決定
手段と、前記インライン展開決定手段により決定された
、呼び出されるプログラム単位を、呼び出すプログラム
単位の中に展開するインライン展開手段とを備えて構成
される。
の自動インライン展開方式は、原始プログラムを入力し
、その中のプログラム単位から呼び出されるプログラム
単位を、呼び出すプログラム単位の中に展開し、展開し
た原始プログラムを作成する原始プログラム変換プログ
ラムにおいて、前記原始プログラムを解析し、どのプロ
グラム単位からどのプログラム単位が呼び出されるかを
解析する、プログラム単位呼び出し関係解析手段と、前
記原始プログラムを解析し、各文の実行回数を推定する
文の実行回数解析手段と、前記プログラム単位呼び出し
関係解析手段と文の実行回数解析手段の結果より、どの
プログラム単位からの、どのプログラム単位の呼び出し
をインライン展開するかを決定するインライン展開決定
手段と、前記インライン展開決定手段により決定された
、呼び出されるプログラム単位を、呼び出すプログラム
単位の中に展開するインライン展開手段とを備えて構成
される。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0006】図1は本発明の一実施例の処理フローを示
すブロック図である。
すブロック図である。
【0007】原始プログラム変換プログラム10は、原
始プログラム解析手段11、インライン展開決定手段1
4およびインライン展開手段15を含み、更に、原始プ
ログラム解析手段11は、プログラム単位呼び出し関係
解析手段12および文の実行回数解析手段13を含む。
始プログラム解析手段11、インライン展開決定手段1
4およびインライン展開手段15を含み、更に、原始プ
ログラム解析手段11は、プログラム単位呼び出し関係
解析手段12および文の実行回数解析手段13を含む。
【0008】原始プログラム解析手段11は、原始プロ
グラムAを入力し、プログラム単位の呼び出しに関して
は、プログラム単位呼び出し関係解析手段12を呼び出
し、呼び出し関係情報を収集する。また、DO文等の文
を繰り返し実行させる構文に対しては、文の実行回数解
析手段13を呼び出し、その繰り返し回数から、プログ
ラム単位が一回実行される場合の、各文の実行回数を決
める。ただし、繰り返し回数が原始プログラムの情報か
らだけでは不明な場合には、仮に10回繰り返すと仮定
する。
グラムAを入力し、プログラム単位の呼び出しに関して
は、プログラム単位呼び出し関係解析手段12を呼び出
し、呼び出し関係情報を収集する。また、DO文等の文
を繰り返し実行させる構文に対しては、文の実行回数解
析手段13を呼び出し、その繰り返し回数から、プログ
ラム単位が一回実行される場合の、各文の実行回数を決
める。ただし、繰り返し回数が原始プログラムの情報か
らだけでは不明な場合には、仮に10回繰り返すと仮定
する。
【0009】インライン展開決定手段14は、プログラ
ム単位呼び出し関係解析手段12が収集した呼び出し関
係の情報および文の実行回数解析手段13が収集した各
プログラム単位が一回実行される場合の各文の実行回数
の情報から、どのプログラム単位からの、どのプログラ
ム単位の呼び出しをインライン展開すると最も効果的か
を判断し、決定する。
ム単位呼び出し関係解析手段12が収集した呼び出し関
係の情報および文の実行回数解析手段13が収集した各
プログラム単位が一回実行される場合の各文の実行回数
の情報から、どのプログラム単位からの、どのプログラ
ム単位の呼び出しをインライン展開すると最も効果的か
を判断し、決定する。
【0010】インライン展開手段15は、インライン展
開決定手段14の決定に従って、プログラム単位のイン
ライン展開を行い、原始プログラムBを作成する。
開決定手段14の決定に従って、プログラム単位のイン
ライン展開を行い、原始プログラムBを作成する。
【0011】図2のFORTRAN原始プログラムの場
合、プログラムの呼び出し関係および呼び出し回数は、
図3のようになる。すなわち、サブルーチンAとサブル
ーチンBだけを比べるなら、サブルーチンAからのサブ
ルーチンCの呼び出しは100回((4)と(5)より
)で、サブルーチンBからのサブルーチンCの呼び出し
は10回((6)と(7)より)なので、サブルーチン
AにサブルーチンCをインライン展開した方が効果的で
あると思われるが、主プログラムMAINからのサブル
ーチンAの呼び出しは1回((1)より)で、サブルー
チンBの呼び出しは1000回((2)と(3)より)
であるので、実際のプログラムの実行では、サブルーチ
ンAからのサブルーチンCの呼び出しは100回で、サ
ブルーチンBからのサブルーチンCの呼び出しは100
00回であると推定できるので(「図3」参照)、サブ
ルーチンBにサブルーチンCをインライン展開した方が
効果的であると判断し、サブルーチンBにサブルーチン
Cをインライン展開することを決定する。
合、プログラムの呼び出し関係および呼び出し回数は、
図3のようになる。すなわち、サブルーチンAとサブル
ーチンBだけを比べるなら、サブルーチンAからのサブ
ルーチンCの呼び出しは100回((4)と(5)より
)で、サブルーチンBからのサブルーチンCの呼び出し
は10回((6)と(7)より)なので、サブルーチン
AにサブルーチンCをインライン展開した方が効果的で
あると思われるが、主プログラムMAINからのサブル
ーチンAの呼び出しは1回((1)より)で、サブルー
チンBの呼び出しは1000回((2)と(3)より)
であるので、実際のプログラムの実行では、サブルーチ
ンAからのサブルーチンCの呼び出しは100回で、サ
ブルーチンBからのサブルーチンCの呼び出しは100
00回であると推定できるので(「図3」参照)、サブ
ルーチンBにサブルーチンCをインライン展開した方が
効果的であると判断し、サブルーチンBにサブルーチン
Cをインライン展開することを決定する。
【0012】
【発明の効果】本発明によれば、以上に述べたように、
原始プログラムを入力し、その中のプログラム単位から
呼び出されるプログラム単位を、呼び出すプログラム単
位の中に展開し、展開した原始プログラムを作成する原
始プログラム変換プログラムにおいて、どのプログラム
単位からの、どのプログラム単位の呼び出しをインライ
ン展開するかを自動的に決定することができるという効
果がある。
原始プログラムを入力し、その中のプログラム単位から
呼び出されるプログラム単位を、呼び出すプログラム単
位の中に展開し、展開した原始プログラムを作成する原
始プログラム変換プログラムにおいて、どのプログラム
単位からの、どのプログラム単位の呼び出しをインライ
ン展開するかを自動的に決定することができるという効
果がある。
【図1】本発明の一実施例の処理フローを示すブロック
図である。
図である。
【図2】本発明の対象となるFORTRAN原始プログ
ラムの例を示す説明図。
ラムの例を示す説明図。
【図3】図2の原始プログラムに対して、プログラム単
位呼び出し関係解析手段および文の実行回数推定手段に
より生成された情報から、インライン展開決定手段で作
成した、プログラムの呼び出し関係およびプログラムの
呼び出し回数情報の一例を示すための説明図。
位呼び出し関係解析手段および文の実行回数推定手段に
より生成された情報から、インライン展開決定手段で作
成した、プログラムの呼び出し関係およびプログラムの
呼び出し回数情報の一例を示すための説明図。
Claims (1)
- 【請求項1】 原始プログラムを入力し、その中のプ
ログラム単位から呼び出されるプログラム単位を、呼び
出すプログラム単位の中に展開し、展開した原始プログ
ラムを作成する原始プログラム変換プログラムにおいて
、前記原始プログラムを解析し、どのプログラム単位か
らどのプログラム単位が呼び出されるかを解析する、プ
ログラム単位呼び出し関係解析手段と、前記原始プログ
ラムを解析し、各文の実行回数を推定する文の実行回数
解析手段と、前記プログラム単位呼び出し関係解析手段
と文の実行回数解析手段の結果より、どのプログラム単
位からの、どのプログラム単位の呼び出しをインライン
展開するかを決定するインライン展開決定手段と、前記
インライン展開決定手段により決定された、呼び出され
るプログラム単位を、呼び出すプログラム単位の中に展
開するインライン展開手段とを備えて成ることを特徴と
する原始プログラムの自動インライン展開方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10628891A JPH04336333A (ja) | 1991-05-13 | 1991-05-13 | 原始プログラムの自動インライン展開方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10628891A JPH04336333A (ja) | 1991-05-13 | 1991-05-13 | 原始プログラムの自動インライン展開方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04336333A true JPH04336333A (ja) | 1992-11-24 |
Family
ID=14429877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10628891A Pending JPH04336333A (ja) | 1991-05-13 | 1991-05-13 | 原始プログラムの自動インライン展開方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04336333A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06202875A (ja) * | 1992-12-28 | 1994-07-22 | Nec Corp | インライン展開による最適化を行うコンパイラ |
JP2016207161A (ja) * | 2015-04-28 | 2016-12-08 | 富士通株式会社 | 情報処理装置、コンパイル方法およびコンパイルプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01118931A (ja) * | 1987-11-02 | 1989-05-11 | Hitachi Ltd | プログラム変換方式 |
-
1991
- 1991-05-13 JP JP10628891A patent/JPH04336333A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01118931A (ja) * | 1987-11-02 | 1989-05-11 | Hitachi Ltd | プログラム変換方式 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06202875A (ja) * | 1992-12-28 | 1994-07-22 | Nec Corp | インライン展開による最適化を行うコンパイラ |
JP2016207161A (ja) * | 2015-04-28 | 2016-12-08 | 富士通株式会社 | 情報処理装置、コンパイル方法およびコンパイルプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04336333A (ja) | 原始プログラムの自動インライン展開方式 | |
JPH09128246A (ja) | コンパイラ装置 | |
JP3032030B2 (ja) | ループ最適化方法及び装置 | |
JPH1040112A (ja) | 動的情報利用型プログラム最適化装置 | |
JPH04165537A (ja) | プログラム自動インライン展開方式 | |
JPH08263300A (ja) | インライン展開方式 | |
JP2001282546A (ja) | プログラム変換装置、プログラム変換方法及びプログラム記録媒体 | |
JPH10326193A (ja) | インライン展開関数の最適化のためのコンパイル方法 | |
JPH10312291A (ja) | コンパイラ装置 | |
JPH0573335A (ja) | プログラムの自動インライン展開方式 | |
JPH03116241A (ja) | コンパイラ | |
JPH05120029A (ja) | 最適化方法 | |
JPH0778096A (ja) | 単体プログラムテスト方式 | |
KR950015127A (ko) | 칠(chill) 분리 컴파일 방법 | |
JP2004062234A (ja) | インライン展開処理方法及びそれに用いたコンパイルプログラム | |
JPH01158532A (ja) | プログラム実行方式 | |
JPH08115220A (ja) | ループ最適化方法 | |
JPH0816371A (ja) | シミュレーションプログラム生成方式 | |
JPH05127945A (ja) | プログラム実行状況解析方式 | |
JPH05216680A (ja) | 文の重み情報による並列化情報算出処理方式 | |
JPH0399330A (ja) | 手続きインライン展開方式 | |
JPH02247734A (ja) | 入出力手続き呼び出しの最適化方式 | |
JPH05313910A (ja) | 機械語命令生成方式 | |
JPH0573330A (ja) | 構文解析処理方式 | |
JPH08297577A (ja) | 無条件分岐最適化方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19990406 |