JPS62219130A - プログラムの最適化方式 - Google Patents
プログラムの最適化方式Info
- Publication number
- JPS62219130A JPS62219130A JP6292586A JP6292586A JPS62219130A JP S62219130 A JPS62219130 A JP S62219130A JP 6292586 A JP6292586 A JP 6292586A JP 6292586 A JP6292586 A JP 6292586A JP S62219130 A JPS62219130 A JP S62219130A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- program
- register
- access
- attribute
- 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
- 238000003860 storage Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000005457 optimization Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
本発明は翻訳したプログラムの実行において、特にその
実行効率を向上させるため、一度翻訳され実行されたプ
ログラムの実行時の変数属性を記録し、この値により再
度の翻訳を最適化し、実行効率のよいプログラムを翻訳
出力するものである。
実行効率を向上させるため、一度翻訳され実行されたプ
ログラムの実行時の変数属性を記録し、この値により再
度の翻訳を最適化し、実行効率のよいプログラムを翻訳
出力するものである。
本発明は、言語プログラムの翻訳の最適化に関する。
言語プログラムを翻訳するコンパイラでは、コンパイル
されたプログラムの実行速度の向上が要求されるが、コ
ンパイル時に収集できる情報だけでなく、コンパイルさ
れたプログラムの実行時の情報も追加することにより、
実行効率を向上させた変数へのレジスタ割付及びデータ
長の割付が必要とされる。
されたプログラムの実行速度の向上が要求されるが、コ
ンパイル時に収集できる情報だけでなく、コンパイルさ
れたプログラムの実行時の情報も追加することにより、
実行効率を向上させた変数へのレジスタ割付及びデータ
長の割付が必要とされる。
従来のコンパイラのデータ割付けとレジスタ割付は方式
を第3図(最終図)に示す。図中、50はコンパイラ、
52はデータ割付は機構、53はレジスタ割付は機構で
ある。
を第3図(最終図)に示す。図中、50はコンパイラ、
52はデータ割付は機構、53はレジスタ割付は機構で
ある。
図示のように、従来のコンパイラではコンパイル時の情
報だけでデータの割付けを割付ける構造である。
報だけでデータの割付けを割付ける構造である。
従来のコンパイラのデータの割付けとレジスタ割付けで
は、コンパイル時に収集できる情報からデータの割付け
とレジスタの割付けを行う方式となっているため、実行
上最適なデータの割付けとレジスタの割付けが行えてい
ないといった問題を生じていた。
は、コンパイル時に収集できる情報からデータの割付け
とレジスタの割付けを行う方式となっているため、実行
上最適なデータの割付けとレジスタの割付けが行えてい
ないといった問題を生じていた。
第1図は本発明の一実施例を示す。
図中、5はコンパイラ、6はアクセス属性解析機構、7
はアクセス属性記憶機構、52はデータの最大、最小値
によりデータ長を変更するデータ割付部、53はアクセ
ス回数を参照しレジスタ割付けを行うレジスタ割付は部
、1は利用者が作成した原始プログラム(Source
Program)である。2゜3は各々コンパイラが
翻訳したプログラムのOM(Object Modul
e)及びLM(Load Module) 、4はコン
パイル時の作成域である。このLM3の実行時のデータ
へのアクセス回数をアクセス属性解析機構6がカウント
し、その情報をアクセス属性記憶機構7が蓄積してゆく
。ここで、コンパイラ5は利利用者が再コンパイルする
時に、コンパイル時作業域4の情報と、アクセス属性記
憶機構7内の情報を参照し、利用者にとって最適なデー
タ領域の割付けとレジスタの割付けを決定し、0M2を
作成する。この実施例によれば、利用者は原始プログラ
ム1をコンパイルする毎に、実行速度の向上が得られる
。
はアクセス属性記憶機構、52はデータの最大、最小値
によりデータ長を変更するデータ割付部、53はアクセ
ス回数を参照しレジスタ割付けを行うレジスタ割付は部
、1は利用者が作成した原始プログラム(Source
Program)である。2゜3は各々コンパイラが
翻訳したプログラムのOM(Object Modul
e)及びLM(Load Module) 、4はコン
パイル時の作成域である。このLM3の実行時のデータ
へのアクセス回数をアクセス属性解析機構6がカウント
し、その情報をアクセス属性記憶機構7が蓄積してゆく
。ここで、コンパイラ5は利利用者が再コンパイルする
時に、コンパイル時作業域4の情報と、アクセス属性記
憶機構7内の情報を参照し、利用者にとって最適なデー
タ領域の割付けとレジスタの割付けを決定し、0M2を
作成する。この実施例によれば、利用者は原始プログラ
ム1をコンパイルする毎に、実行速度の向上が得られる
。
第2図は本発明の一実施例を示す図である。第2図(a
lはアクセス解析機構6の具体的構成、第2図(b)は
コンパイラ5のデータ割付部52及びレジスタ割付部5
3中従来処理に付加すべき部分の具体的構成であり、第
2図(C1はアクセス属性記憶機構の具体的構成である
。
lはアクセス解析機構6の具体的構成、第2図(b)は
コンパイラ5のデータ割付部52及びレジスタ割付部5
3中従来処理に付加すべき部分の具体的構成であり、第
2図(C1はアクセス属性記憶機構の具体的構成である
。
第2図(a)のシフセス属性解析機構は、プログラムが
実行されメモリアクセスが発生する毎に、まずアクセス
されたアドレスと、そのアドレスに割当られている変数
名の対応を取り、第2図(C)の記憶部にアクセス回数
を更新すると共に、そのアクセス時のデータ値が既に記
録されている最大値より大きければ更新する。
実行されメモリアクセスが発生する毎に、まずアクセス
されたアドレスと、そのアドレスに割当られている変数
名の対応を取り、第2図(C)の記憶部にアクセス回数
を更新すると共に、そのアクセス時のデータ値が既に記
録されている最大値より大きければ更新する。
第2図(b)のデータ割付部とレジスタ割付部は、コン
パイル中に変数定着長が第2図(C)記憶の記憶部の値
と比較し異なれば、その変数の領域長が最大値を格納す
るに充分な大きさに変更する。また変数の数が多く各変
数にレジスタを割付けた時レジスタの数が不足したなら
ば、第2図(C1のアクセス属性記憶部のアクセス回数
を変数毎に比較してアクセス回数の多い変数から順にレ
ジスタを割付け、レジスタを割付られなかった変数に対
してはメモリ中にレジスタに代わる領域を設定する。
パイル中に変数定着長が第2図(C)記憶の記憶部の値
と比較し異なれば、その変数の領域長が最大値を格納す
るに充分な大きさに変更する。また変数の数が多く各変
数にレジスタを割付けた時レジスタの数が不足したなら
ば、第2図(C1のアクセス属性記憶部のアクセス回数
を変数毎に比較してアクセス回数の多い変数から順にレ
ジスタを割付け、レジスタを割付られなかった変数に対
してはメモリ中にレジスタに代わる領域を設定する。
本発明は原始プログラムの翻訳部と、この翻訳されたプ
ログラムを実行させる実行部とを備えたプログラムの翻
訳、実行において、翻訳された各変数のアクセス属性を
解析する属性解析手段と、この属性を記録する属性記憶
手段を上記実行部に設け、前記属性記憶手段の記憶した
データに基づいて上記原始プログラムの再翻訳を最適化
する最適化手段を設けたことを特徴とするプログラムの
最適化方式である。
ログラムを実行させる実行部とを備えたプログラムの翻
訳、実行において、翻訳された各変数のアクセス属性を
解析する属性解析手段と、この属性を記録する属性記憶
手段を上記実行部に設け、前記属性記憶手段の記憶した
データに基づいて上記原始プログラムの再翻訳を最適化
する最適化手段を設けたことを特徴とするプログラムの
最適化方式である。
本発明のアクセス属性解析機構は、実行時に各変数に対
応するメモリがアクセスされる都度に、そのアクセス回
数とアクセス値の最大値を抽出し、アクセス属性記憶機
構は、前記のアクセス属性解析機構の結果を複数回に渡
って蓄積してゆく。この情報をコンパイラで参照し、レ
ジスタ割付けと領域長の調整を行うことにより、実行効
率を向上させた。
応するメモリがアクセスされる都度に、そのアクセス回
数とアクセス値の最大値を抽出し、アクセス属性記憶機
構は、前記のアクセス属性解析機構の結果を複数回に渡
って蓄積してゆく。この情報をコンパイラで参照し、レ
ジスタ割付けと領域長の調整を行うことにより、実行効
率を向上させた。
本発明によれば、レジスタ割付は条件と領域長設定の条
件に、実行時の各変数へのアクセス属性を盛り込むこと
により、原始プログラムのコンパイルと実行を繰り返す
たびに、より最適をレジスタ割付けを実現し、より効率
の良いOM (ObjectModu le)を作成す
ることができる。また、同一の原始プログラムから各利
用者の実行条件に適した異なったO M (Objec
t Module)を作成し、ソフトウェア製品の実行
効率を上げることができる。
件に、実行時の各変数へのアクセス属性を盛り込むこと
により、原始プログラムのコンパイルと実行を繰り返す
たびに、より最適をレジスタ割付けを実現し、より効率
の良いOM (ObjectModu le)を作成す
ることができる。また、同一の原始プログラムから各利
用者の実行条件に適した異なったO M (Objec
t Module)を作成し、ソフトウェア製品の実行
効率を上げることができる。
第1図は本発明の一実施例構成図、第2図は本発明の詳
細構成図、第3図は従来の構造図である。 図において、5はコンパイラ、52はコンパイラ内のデ
ータ割付部、53はコンパイラ内のレジスタ割付部、6
はアクセス属性解析機構、7はアクセス属性記憶機構で
ある。 (α) (b)(C) 第 2121
細構成図、第3図は従来の構造図である。 図において、5はコンパイラ、52はコンパイラ内のデ
ータ割付部、53はコンパイラ内のレジスタ割付部、6
はアクセス属性解析機構、7はアクセス属性記憶機構で
ある。 (α) (b)(C) 第 2121
Claims (3)
- (1)原始プログラムの翻訳部と、この翻訳されたプロ
グラムを実行させる実行部とを備えたプログラムの翻訳
・実行において、翻訳された各変数のアクセス属性を解
析する属性解析手段と、この属性を記録する属性記憶手
段とを上記実行部に設け、前記属性記憶手段の記憶した
データに基づいて上記原始プログラムの再翻訳を最適化
する最適化手段を設けたことを特徴とするプログラムの
最適化方式。 - (2)上記変数のアクセス属性としてアクセス回数を計
数し、上記最適化手段にはアクセス回数の多い順にレジ
スタを割当てるレジスタ割当手段を設けたことを特徴と
する特許請求の範囲第1項記載のプログラム最適化方式
。 - (3)上記変数のアクセス属性としてアクセスデータの
最大値を記憶させ、上記最適化手段にはデータ値に依存
した変数長を割当てる変数長変更手段を設けたことを特
徴とする特許請求の範囲第1項記載のプログララム最適
化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6292586A JPS62219130A (ja) | 1986-03-20 | 1986-03-20 | プログラムの最適化方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6292586A JPS62219130A (ja) | 1986-03-20 | 1986-03-20 | プログラムの最適化方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62219130A true JPS62219130A (ja) | 1987-09-26 |
Family
ID=13214335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6292586A Pending JPS62219130A (ja) | 1986-03-20 | 1986-03-20 | プログラムの最適化方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62219130A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005301415A (ja) * | 2004-04-07 | 2005-10-27 | Ricoh Co Ltd | コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム |
JP4823075B2 (ja) * | 2004-01-14 | 2011-11-24 | コミサリア ア レネルジー アトミック エ オ ゼネルジー アルテルナティブ | 最適化コードの自動発生システム |
US20120151181A1 (en) * | 2007-09-13 | 2012-06-14 | Hiroshi Hayashi | Integrated device, layout method thereof, and program |
JP2012203581A (ja) * | 2011-03-24 | 2012-10-22 | Fujitsu Ltd | レジスタ配置最適化方法、レジスタ配置最適化プログラム、及びレジスタ配置最適化装置 |
-
1986
- 1986-03-20 JP JP6292586A patent/JPS62219130A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4823075B2 (ja) * | 2004-01-14 | 2011-11-24 | コミサリア ア レネルジー アトミック エ オ ゼネルジー アルテルナティブ | 最適化コードの自動発生システム |
JP2005301415A (ja) * | 2004-04-07 | 2005-10-27 | Ricoh Co Ltd | コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム |
US20120151181A1 (en) * | 2007-09-13 | 2012-06-14 | Hiroshi Hayashi | Integrated device, layout method thereof, and program |
US8468376B2 (en) * | 2007-09-13 | 2013-06-18 | Sony Corporation | Integrated device, layout method thereof, and program |
JP2012203581A (ja) * | 2011-03-24 | 2012-10-22 | Fujitsu Ltd | レジスタ配置最適化方法、レジスタ配置最適化プログラム、及びレジスタ配置最適化装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3110040B2 (ja) | 手順間レジスタ割付けを伴うコンピュータプログラムのコンパイル方法及び装置 | |
US5920723A (en) | Compiler with inter-modular procedure optimization | |
US6292940B1 (en) | Program complete system and its compile method for efficiently compiling a source program including an indirect call for a procedure | |
JP2001147819A (ja) | 最適化装置および記録媒体 | |
US5940621A (en) | Language independent optimal size-based storage allocation | |
JP2002366366A (ja) | コンパイル方法、コード生成方法、スタックレジスタ使用方法、コンパイラ、これらを実現するプログラム及び記憶媒体 | |
JPS62219130A (ja) | プログラムの最適化方式 | |
JPH07319710A (ja) | コンパイル処理方法 | |
US6134708A (en) | Program compilation execution system | |
JP3790707B2 (ja) | プログラム変換方法、これを用いたコンピュータ装置及びプログラム | |
JPH01118931A (ja) | プログラム変換方式 | |
JP3264901B2 (ja) | コンパイル装置及びコンパイル方法 | |
JPS617946A (ja) | 最適化コンパイル方式 | |
JP2004094581A (ja) | 並列拡張機能を備えたコンパイラプログラム、その記録媒体、コンパイル方法、およびコンパイル装置 | |
JP2809073B2 (ja) | 配列のメモリ割り付け方式 | |
Bivens et al. | Incremental generation of high-quality target code | |
JPH0371233A (ja) | コンパイラにおける最適データ割付け方式 | |
JPH03109642A (ja) | コンパイル装置 | |
JPH01136240A (ja) | コンパイラにおけるレジスタ割付け処理方式 | |
JP2002351674A (ja) | 最適化装置 | |
JPH0241525A (ja) | 翻訳処理装置における番地割付処理方式 | |
JPH06348505A (ja) | コンパイル方法 | |
JPH11175351A (ja) | プログラム変換装置、高級言語プログラム内アセンブラ表現方法および記録媒体 | |
JPH04280324A (ja) | 記憶管理装置 | |
JPH06282443A (ja) | プログラム編集方法と装置 |