JPH02176938A - 機械語命令最適化方式 - Google Patents

機械語命令最適化方式

Info

Publication number
JPH02176938A
JPH02176938A JP33181688A JP33181688A JPH02176938A JP H02176938 A JPH02176938 A JP H02176938A JP 33181688 A JP33181688 A JP 33181688A JP 33181688 A JP33181688 A JP 33181688A JP H02176938 A JPH02176938 A JP H02176938A
Authority
JP
Japan
Prior art keywords
optimization
instruction
program
object code
machine 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
JP33181688A
Other languages
English (en)
Inventor
Motohiro Kanda
神田 基博
Kiyotaka Kiyasu
木保 清隆
Atsumi Kimura
淳美 木村
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 Ltd
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP33181688A priority Critical patent/JPH02176938A/ja
Publication of JPH02176938A publication Critical patent/JPH02176938A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野〕 本発明は、計算機システムにおける機械語命令の最適化
方式に関する。
なお、本発明において「最適化」とは、「目的とする業
務の計算機での機械語命令の実行時間を最小にするため
に、目的とする業務において実行されるプログラムのオ
ブジェクトコードおよびソースコードを変更すること、
より具体的には、上記オブジェクトコードおよびソース
コードの配列順を変更すること」を意味する。
〔従来の技術〕
従来1機械語命令の最適化技術としては、コンパイル時
の、高速な演算器であるレジスタの割付けの技術がある
。また、特開昭62−217325号公報には、バイブ
ライン方式により命令を実行するデータ処理システムに
おけるアセンブラコードの最適化方式が論じられている
上記公報に開示されている発明によれば、アセンブラコ
ード(「オブジェクトコード」と同じ意味)を入力し、
実行順序の従属関係を調べ、結果を格納するオペランド
が後続の命令に与える影響度を求め、この影響度の大き
い順に並べ換えることにより、ハードウェアの行ってい
るパイプライン制御に適したアセンブラコードを出力す
る。
〔発明が解決しようとする課題〕
上記従来技術は、以下に述べる点について配慮がなされ
ておらず、充分強力で、かつ、使い易い最適化方法とは
言えなかった。
(1)パイプライン制御で発生する待ちや乱れの解析を
行うとき、命令語の実行速度の違い、命令語のオペラン
ド種別による影響度の違い等、ハードウェアの詳細な仕
様が反映されておらず、命令語間の論理的な依存関係の
みでアセンブラコードの並べ換えを行っているため、行
われた最適化が、必ずしも使用する計算機のパイプライ
ン制御にとって最適ではないおそれがある。
(2)メモリのキャッシュ制御についての配慮がなされ
ていない。
(3)以下に述べるような、プログラムの実行時に得ら
れる(言わば動的な)情報は取入れることができない。
a)プログラムのオブジェクトコードのうち、多くはエ
ラーが発生したときの後始末等であり。
特定の業務の特定の処理を行うために必要な機械語命令
列は、比較的少量であることが多い。
この、最も頻繁に命令が実行されるため高速化が必要な
部分(以下、「メインパス」という)と、それ以外の言
わば例外処理に相当する部分とを区別することで、より
効果的な最適化が可能になる。
b)上記メインパスの中においても、各命令の実行頻度
や分岐の起きる確率が考慮されていない。
(4)既存のオブジェクトコードから、最適化されたオ
ブジェクトコードを生成する方法では、ユーザが管理す
べきオブジェクトコードが2倍になり、計算機システム
の保守上の負担が増す。
また、C言語の如く比較的機械語に近く、システム記述
言語として使用される言語の場合、ダンプ出力されたオ
ブジェクトコードを直接読んだり、バッチをあてたりす
る機会も多く、最適化の結果、オブジェクトコードから
予想されるものと著しく離れてしまうのは不都合である
(5)コンパイル隊位を越えた大域的な解析や、プログ
ラムの論理的構造の変更をも含む再設計により、大きな
最適化の効果が期待できるが、従来の最適化技術では、
それらについては考慮されていない。
本発明は上記事情に鑑みてなされたもので、その目的と
するところは、従来の技術における上述の如き問題を解
消し、最適化を行う環境として、特定の業務および特定
の計算機ハードウェアを定めた場合に、種々のレベルの
強力な機械語命令最適化方式を提供することにある。
〔課題を解決するための手段〕
本発明の上記目的は、高級言語で記述されたプログラム
を翻訳して得た機械語命令を実行するための、ソースコ
ードからオブジェクトコードを生成する手段(コンパイ
ラ)と、複数のコンパイル単位のオブジェクトコードを
結合してロードモジュールを生成する手段(リンケージ
エディタ)とを有する計算機システムにおいて、最適化
を行うべき目的業務の処理を実行させた際に計算機の命
令語を時系列に取得する手段と、取得したトレースデー
タを基に計算機のハードウェアの動作をシミュレートし
、解析する手段と、最適化のための修正方法を決定し、
オブジェクトコードを修正する手段および前記オブジェ
クトコードの修正個所とその効果を蓄積する手段を設け
て、前記トレースデータの解析結果に基づいてコンパイ
ラおよびリンケージエディタの8力を、特定の業務の特
定の処理について最適化することを特徴とする機械語命
令最適化方式によって達成される。
〔作用〕
本発明に係る機械語命令最適化方式においては、最適化
の対象となるプログラムを実際の環境で稼動させたとき
のトレースデータを取得し、それを最適化しようとする
目的計算機ハードウェアのシミュレーションを行って解
析し、目的とする業務で実行される命令列に1目して最
適化を行うものであり、業務が定型的である程、また、
プログラムの実行環境の変化が小さい程、最適化の効果
が大きくなる。更に、最適化の結果を計算機システム内
に記録・管理するようにするとともに、高級言語のソー
スコードをオブジェクトコードの修正に同期して修正す
るようにした場合には、プログラムの保守性の低下を防
ぐことができるという効果がある。
〔実施例〕
以下、本発明の実施例を図面に基づいて詳細に説明する
第2図は1本発明の一実施例である機械語命令最適化方
式を適用した計算機システムの構成図である0図におい
て、1は後述する機能を有するコンパイラ、2はリンケ
ージエディタ、3は生成されるオブジェクトコード、4
は高級言語のソースコード、5は本計算機システムの八
−ドウエア仕様、6はコンパイル単位のプログラム毎に
、最適化されたオブジェクトコードやプログラムの動作
の解析結果を登録するためのディレクトリを示している
。また、7は後述する最適化制御部、8はシミュレータ
、9はトレーサを示している。
本実施例に示すコンパイラ1の最適化制御部7による最
適化の手続きを、第1図のフローチャートに示す、以下
、第1図および第2図に基づいて本実施例の動作を説明
する。
くステップ31)まず、トレースデータおよびハードウ
ェア仕様5を使わずに、コンパイラ1を動作させ、ソー
スコード4から、トレースデータを取得するためのオブ
ジェクトコード3を生成する。
(ステップ32〉生成したオブジェクトコード3を、リ
ンケージ°エディタ2を用いて他のコンパイル単位のオ
ブジェクトコードとのリンケージをとり、ロードモジュ
ール(稼動環境)を作成する。
くステップ33〉実際の業務プログラムの動作環境で上
記ロードモジュールを動作させて、トレーサ9によりト
レースデータを取得する。トレースデータとしては、時
系列に取得した、命令語と命令語のアドレスとそのオペ
ランドのアドレスおよびオペランドの内容等がある。
くステップ34〉上記トレースデータから、各命令の実
行頻度2条件付き分岐の成立する確率を求める。また、
前述のハードウェア仕様5を基に、シミュレータ8を動
作させてパイプライン制御およびキャッシュ制御をシミ
ュレートして、各命令毎に、その実行時間、パイプライ
ンの待ちや乱れおよびキャッシュアクセスの成功、不成
功を決める。更に、プログラムに関する統計情報(命令
の平均実行時間、キャッシュのヒツト率等)をも取得す
る。
〈ステップ35〉ステップ34における解析を基に、以
下の手続きに従って最適化を行い、オブジェクトコード
を修正する。
(1)プログラム中で頻繁に参照、演算がされるプログ
ラムの変数や、演算の中間結果については、レジスタを
使う(詳細は後述する)。
(2)ハードウェア仕様5を基に、ハードウェアの特性
に合った命令が使われているか否かを検討する1例えば
、4バイトのデータをメモリからメモリへ移動するのに
1M vC(MovsCharactor)命令を使う
のと、L(Load)とST (S tore)命令を
使うのと、どちらが高速かは、ハードウェアに依存する
。また、実行時間の長い命令語については、その出現頻
度を低くする、もしくは、他の命令語で代用できないか
を検討する。
(3)前記メインバスと例外処理をオブジェクトコード
の上で、111す、これにより、メインバスに属する命
令が、キャッシュ内にある確率を大きくすることができ
る。更に、メインバスの中の不必要な無条件分岐命令を
除くことができる(詳細は後述する)。
(4)パイプラインの待ちを最小にするように命令語を
並べ換える(詳細は後述する)。
くステップ36)オブジェクトコードの修正個所と、そ
の効果をコンパイラのディレクトリ6に記録しておく。
くステップ37〉オブジェクトコード3を出力する。
(ステップ38)最適化の結果を評価する。これは、ス
テップ35で行ったオブジェクトコード修正によって得
られた。プログラム実行時間の削減効果を総和するか、
もしくは、得られたオブジェクトコードを実際に動作さ
せて、性能を評価する等の方法によって行われる。
くステップ39〉最適化処理を終了するか否かを判断す
る。この判断基準としては、 (1)目的とする業務の計算機での実行時間が、十分短
縮された。
(2)予め定めておいた回数だけ、ステップ32からス
テップ38を繰り返した。
(3)各繰り返しによって得られる改善の度合いに、収
束が見られ、それ以上の繰り返しによって得られる効果
が少ないと判断された。
等が考えられる。
更に、最適化を続ける場合は、ステップ32に戻り、前
回得られたオブジェクトコードを使ってロードモジュー
ルを作成し、トレースデータを取得、解析をする。この
とき、前回の解析結果や、オブジェクトコードへの修正
とその効果等の中間的情報を利用して、繰り返し間の処
理の重複を除去する。
〈ステップ40)最適化処理を終了する。そのとき、必
要であれば、オブジェクトコード3に加えられている最
適化のための修正を、高級言語のソースコードの文の修
正、もしくは、コメントの追加という形でソースコード
4に反映させ、特にシステム記述言語の如く、オブジェ
クトコードをプログラマが直接読んだりする機会のある
プログラムの、プログラムの保守性を高める。
なお、最適化されたオブジェクトコードは、プログラム
の動作の解析結果等とともに、コンパイラ1のディレク
トリ6に登録されているため、この後、同じソースコー
ドを入力すれば、最適化の計算をすることなく、直ちに
、オブジェクトコードが得られる。
以上が、一つのコンパイル単位であるモジュールのオブ
ジェクト最適化の手続きの例である。従って、目的とす
る業務全体について最適化を行うためには、その業務に
おいて動作するプログラムの、全コンパイル単位につい
て、上述のステップ32から38を順次繰り返し、その
業務に関してのメインパスを、漸次、高速化して行けば
良い。これに加えて、後述するコンパイル単位を越えた
命令の並べ換え等を行えば、更に強力な最適化が可能に
なる。
以下では、オブジェクトコードの最適化の具体例を挙げ
る。なお、使用言語はC言語であり、そのコンパイル結
果をアセンブラ語で示す。
〈例1:レジスタの割当て〉 第3図に示したプログラムにおいて、mとnはプログラ
ムの実行時に値が決まる変数とする。このときに、使用
可能なレジスタが一つしか無い場合、それをiに使うか
jに使うかは、上記mとnの大きさおよびループの中で
行われるiとjに依存した処理によって決められる。
(例2:メインバスと例外処理部分のオブジェクトコー
ド上での分離〉 第4図(a)に示したプログラムにおいて、処理1と処
理3がメインパスに属し、処理2はエラー時にしか実行
されないとする。第4図(b)は、これを従来のコンパ
イラでコンパイルした生成したオブジェクトコードを示
している。一方1本実施例に示すコンパイラを動作させ
て生成したオブジェクトコードは、第4図(c)のよう
になる。これらのオブジェクトコードをパイプライン機
構とキャッシュ機構を有する計算機で実行させたとき、
第4図(c)のオブジェクトコードは、以下の点で同(
b)のオブジェクトコードより優れている。
(1)メインパスから無条件分岐文が一つ減った。
分岐文はパイプライン制御を乱す大きな要因であるため
、この効果は大きい。
(2)メインパスのオブジェクトコードが小さくまとま
った。このため、メインパスの命令列がキャッシュに存
在する確率が増大する。
但し、目的とするコンパイル単位のモジュールの全体の
大きさが、キャッシュのブロック長以下である場合、こ
の効果は期待できない。この場合、当該業務プログラム
の他のコンパイル単位であるモジュールと、目的とする
コンパイル単位のモジュールを同一コンパイル単位とな
るようリコーディングするか、もしくは、前述の特許請
求の範囲第5項の(a−2)に記載した如く、リンケー
ジエディタとして最適化機能を有するものを使用する等
の対策がある。
〈例3:パイプライン処理を考慮した命令語の並べ換え
〉 本実施例が前提とするハードウェアは、第5図に示すD
(命令デコードとアドレス計算)、A(アドレス変換)
、OF(オペランド読出し、E(命令実行)の、四つの
パイプラインステージを持ち、1マシンサイクルで、同
時に四つのステージにおいて、別々の命令を処理するも
のとする。
パイプライン処理のシミュレートは、第5図に示すパイ
プライン表にトレースデータに従った順に命令語を挿入
して行くことで行う、第5図(a)は、L (L oa
d)とM (Multiply)命令が順に実行される
様子を示す、M命令は命令実行ステージに2マシンサイ
クルを要するので、図のようになる。
次に、命令語の干渉によって、パイプラインに待ちが発
生する例を示す。第5図(b)は、最適化を行う前の命
令語とそのパイプライン表を示しているa L H(L
 oad halfword)と A H(A dd 
half−word)命令は、直前のL(Load)命
令で更新したレジスタを、オペランドのペースレジスタ
として使うため、アドレス計算(Dステージ)の実行は
、L命令が完了するまで行えない。これを、パイプライ
ン表では、LH命令とAH全命令Dステージの延びとし
て表わしている。このとき、パイプラインの待ち時間は
、合計6マシンサイクルである。
この命令語列を最適化する手続きを、以下に示す。
くステップ1〉パイプライン待ちを起こしている命令に
ついて、干渉している相手の命令および待ちのマシンサ
イクルを挙げる。第5図(b)の場合、LH命令は始め
のL命令のために3サイクル待ち、AH全命令次のL命
令のために3サイクル待っている。
(ステップ2〉干渉している命令同志を、待ちのマシン
サイクルだけ離す、このため、干渉している命令語の前
後の他の命令語のうち、干渉している命令語と論理的な
依存関係を持たないものを探し、二つの命令語の間に挿
入する。第5図(b)の場合、命令語間の依存関係は、
LH命令は始めのL命令に依存、AH全命令2番目のし
命令に依存、AH全命令LH命令に依存の三つである。
このため、始めのL命令とLH命令の間に2番目のL命
令を入れれば良く、また、そうすると、これは、2番目
のL命令とAH全命令間にLH命令を挿入したことにも
なる。これ以上、他に挿入する命令語が無いため、パイ
プラインの待ちはまだ残っているが、命令語の並べ換え
はこれで終了する。
なお、上記アルゴリズムよりやや効率が悪いが、機械的
で実装し易いアルゴリズムを、以下に示す。
(ステップ1〉オブジェクトコード内の全命令語につい
て、命令語間の依存関係を明らかにする。
このためには、特開昭62−217325号公報に開示
されている如く グラフ(ネットワークまたは木)を用
いる方法、述語論理を用いる方法等がある。
〈ステップ2〉上記依存関係を守る命令語の実行列を一
つ決める。
〈ステップ3)パイプライン表を使って、その命令語列
の実行をシミュレートし、パイプラインの待ちが最小と
なるものを探す。
第5図(c)に、最適化を行った後の命令語を実行した
ときのパイプライン表を示す。干渉し合う二つの命令語
の間に他の命令語を挿入する方法によって、パイプライ
ンの待ち時間は、合計2マシンサイクルに短縮されてい
る。なお、AH全命令、その前のLH命令で更新したレ
ジスタ5を使っているが、これに伴なうパイプライン待
ちは発生しないものとする。
現実の計算機のパイプライン処理では、しばしば頻繁に
現れる特定の命令語の組に対しては、前の命令語の処理
ステージの中間的な演算結果を、ハードウェアの内部的
なレジスタを介して後の命令語の処理に渡して使用する
、いわゆるバイパス処理を行って、その特定の命令語の
組についてのパイプライン処理の待ちを少なくする方法
をとっている。正確なハードウェアシミュレーションを
行うためには、これらの詳細な仕様をも考慮しなければ
ならない。
また、パイプライン表における命令語の実行のシミュレ
ートには、キャッシュアクセスに伴なう遅れも考慮しな
ければならない。このためのキャッシュ処理のシミュレ
ート方法を以下に示す。
シミュレータは、ハードウェアの定める数のキャッシュ
ブロック数のエントリを持ったキャッシュ表を有する。
そして、各命令毎に、トレースデータからその命令語の
アドレスおよびオペランドのアドレスを得る。そのアド
レスを含むブロックがキャッシュ表にない場合、キャッ
シュ表からあるブロックを選択して削除し、今回の命令
で使用する、新しいブロックを登録する。各ブロックの
キャッシュ表への登録ないしブロックの追出しに使われ
るアルゴリズムは、ハードウェアの仕様に従う。キャッ
シュ表に目的ブロックが無かった場合は、主記憶から目
的ブロックが転送されるために必要なマシンサイクルを
、パイプライン表の該当ステージの待ちの時間に加える
。このようにして、パイプライン制御とキャッシュ制御
の両方の効果がシミュレートできる。
なお、以上説明した、本発明に係る機械語命令最適化方
式は、以下の如く変形して用いることが可能である。
(1)前述の特許請求の範囲第1項に記載した構成のう
ち、コンパイラとリンケージエディタを除き、既存のオ
ブジェクトコードから、最適化されたオブジェクトコー
ドを生成する手段、すなわち、オブジェクトコード変換
機を備えたもの。
この場合には、高級言語のソースコードからのオブジェ
クトコードの生成は行わず、既存のコンパイラ等の出力
したオブジェクトコードを入力として、トレースデータ
、ハードウェアシミュレーションの解析を行い、最適化
したオブジェクトコードを生成する。最適化の結果であ
るオブジェクトコードと、最適化の計算の中間結果等は
、計算機システムが管理・記録するため、プログラムの
保守性の点での問題はない。
なお、この方式は、アセンブラプログラムの最適化方式
としても使用できる。
(2)前述の特許請求の範囲第1項に記載した構成のう
ち、トレースデータを取得する手段とそれを解析する手
段とを除き、プログラマとの対話によってプログラムの
特性等の情報を入手するようにしたもの。この場合には
、プログラマは、最適化しようとするプログラムについ
て、そのメインパスはどこか、また、条件分岐文の成立
する確率はどれ位か等の、プログラムのダイナミックな
特性に関する情報を、画面のフローチャート上でパスを
カーソルで示す等の方法で入力する。この方式では、パ
イプラインの乱れの解析については、トレースデータを
使う場合に近い解析が可能である。
(3)前述の特許請求の範囲第1項に記載した構成のう
ち、コンパイラとリンケージエディタおよびオブジェク
トコードの修正方法を決定する手段を除き、診断メツセ
ージおよびプログラマとの対話によってプログラムの再
設計を支援するようにしたもの。この場合には、高速な
オブジェクトコードの出力ではなく、既存の高級言語の
プログラムの性能評価を行い、必要であればその論理的
構造の修正をも含む再設計を支援することを目的とする
。このため、高級言語に反映できない最適化は行わない
トレースデータもしくは前述の如くプログラムからの指
示を基にプログラムの実行時の動作を解析し、目的とす
る業務およびハードウェアに関して、プログラムの性能
評価を行う。その上で、高級言語への反映が可能な改善
策があれば、それをプログラマに提示する。
〔発明の効果〕
以上述べた如く、本発明によれば、高級言語で記述され
たプログラムから、特定の業務および特定の計算機ハー
ドウェアを定めた場合に1種々のレベルに最適化された
オブジェクトコードを得ることが可能な機械語命令最適
化方式を実現できるという顕著な効果を奏するものであ
る。
【図面の簡単な説明】
第1図は本発明の一実施例である機械語命令最適化方式
の動作フローチャート、第2図は実施例の機械語命令最
適化方式を適用した計算機システムの構成図、第3図は
最適化するプログラムの例を示す図、第4図はプログラ
ム最適化の例を示す図、第5図はパイプライン表による
シミュレートの例を示す図である。 1:コンパイラ、2ニリンケージエデイタ、3:オブジ
ェクトコード、4:ソースコード、5ニハードウェア仕
様、6:ディレクトリ、7:最適化制御部、8:シミュ
レータ、9:トレーサ。 第 図 第 図 int  m、n3 register int  i 、 j 1for(
i−0:i<m; i ++) (for (j−0:
j<n: j++)(iとjに依存した処理

Claims (1)

  1. 【特許請求の範囲】 1、FORTRAN、C等の高級言語で記述されたプロ
    グラムを翻訳して得た機械語命令を実行するための、前
    記高級言語の文(ソースコード)から機械語命令列(オ
    ブジェクトコード)を生成する手段(コンパイラ)と、
    複数のコンパイル単位のオブジェクトコードを結合して
    ロードモジュールを生成する手段(リンケージエディタ
    )とを有する計算機システムにおいて、最適化を行うべ
    き目的業務の処理を実行させた際に計算機の命令語を時
    系列に取得する手段と、取得した命令語(トレースデー
    タ)を基に計算機のハードウェアの動作をシミュレート
    し、解析する手段と、最適化のための修正方法を決定し
    、オブジェクトコードを修正する手段および前記オブジ
    ェクトコードの修正個所とその効果を蓄積する手段を設
    けて、前記トレースデータの解析結果に基づいてコンパ
    イラおよびリンケージエディタの出力を、特定の業務の
    特定の処理について最適化することを特徴とする機械語
    命令最適化方式。 2、前記シミュレートする計算機のハードウェアの動作
    が、命令のパイプライン制御であり、最適化を行うべき
    プログラムの実行において、前記パイプライン制御の待
    ちや乱れを惹き起こす命令を他の命令と並べ換える操作
    を行うことにより、コンパイラおよびリンケージエディ
    タの出力を最適化することを特徴とする、請求項1記載
    の機械語命令最適化方式。 3、前記シミュレートする計算機のハードウェアの動作
    が、メモリのキャッシュ制御であり、最適化を行うべき
    プログラムの実行において、前記キャッシュのヒット率
    を高める如く命令を並べ換える操作を行うことにより、
    コンパイラおよびリンケージエディタの出力を最適化す
    ることを特徴とする、請求項1または2記載の機械語命
    令最適化方式。 4、前記最適化のレベルとして、 (a)プログラムの変数へのレジスタの割当てや、命令
    語の並べ換え等、プログラムの論理的構造を保ったまま
    行う。 (b)プログラムのアルゴリズムやテーブル設計等の論
    理的構造も最適化の対象とし、プログラムとの対話を通
    じて、プログラムの再設計を可能とする。 の一つを有することを特徴とする、請求項1記載の機械
    語命令最適化方式。 5、前記最適化のレベル(a)として、 (a−1)最適化は、コンパイル毎に行う。 (a−2)最適化は、コンパイル単位を越えて行う。 の二つを有することを特徴とする、請求項4記載の機械
    語命令最適化方式。 6、前記最適化のレベル(a−1)として、(a−1−
    1)最適化の結果が高級言語のソースコードの記述に反
    映できる修正については、修正したソースコードを出力
    する。 (a−1−2)上の場合、診断メッセージを出力し、プ
    ログラマに、ソースコードの修正を促す。 (a−1−3)ソースコードへの反映は行わない。 の三つのオプションを有することを特徴とする、請求項
    5記載の機械語命令最適化方式。 7、前記コンパイラおよびリンケージエディタの出力で
    ある最適化されたオブジェクトコードを使って、目的業
    務の処理を実行したときのトレースデータを取得、解析
    し、更に最適化を行うという手続きを繰り返し、改善の
    度合を評価することで、漸次、最適化の度合を高めるこ
    とを特徴とする、請求項1から6のいずれかに記載の機
    械語命令最適化方式。 8、前記各ステップに加えて、各最適化手続きの際のプ
    ログラム、オブジェクトコードの修正個所およびその修
    正に伴なう改善等の中間的情報をシステムに蓄積するこ
    とを特徴とする、請求項7記載の機械語命令最適化方式
JP33181688A 1988-12-28 1988-12-28 機械語命令最適化方式 Pending JPH02176938A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33181688A JPH02176938A (ja) 1988-12-28 1988-12-28 機械語命令最適化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33181688A JPH02176938A (ja) 1988-12-28 1988-12-28 機械語命令最適化方式

Publications (1)

Publication Number Publication Date
JPH02176938A true JPH02176938A (ja) 1990-07-10

Family

ID=18247967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33181688A Pending JPH02176938A (ja) 1988-12-28 1988-12-28 機械語命令最適化方式

Country Status (1)

Country Link
JP (1) JPH02176938A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301415A (ja) * 2004-04-07 2005-10-27 Ricoh Co Ltd コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム
JP2007226589A (ja) * 2006-02-24 2007-09-06 Oki Electric Ind Co Ltd プログラム変換システム
JP2007233805A (ja) * 2006-03-02 2007-09-13 Oki Electric Ind Co Ltd プログラム変換システム
JP2008015941A (ja) * 2006-07-07 2008-01-24 Fujitsu Ltd プログラム調整装置およびプログラム調整方法
JP4823075B2 (ja) * 2004-01-14 2011-11-24 コミサリア ア レネルジー アトミック エ オ ゼネルジー アルテルナティブ 最適化コードの自動発生システム

Cited By (5)

* Cited by examiner, † Cited by third party
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 コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム
JP2007226589A (ja) * 2006-02-24 2007-09-06 Oki Electric Ind Co Ltd プログラム変換システム
JP2007233805A (ja) * 2006-03-02 2007-09-13 Oki Electric Ind Co Ltd プログラム変換システム
JP2008015941A (ja) * 2006-07-07 2008-01-24 Fujitsu Ltd プログラム調整装置およびプログラム調整方法

Similar Documents

Publication Publication Date Title
JP4640685B2 (ja) プログラムコード変換方法
US7725883B1 (en) Program interpreter
US5966539A (en) Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis
US6113650A (en) Compiler for optimization in generating instruction sequence and compiling method
US5586328A (en) Module dependency based incremental compiler and method
EP0806725B1 (en) Method and apparatus for early insertion of assembler code for optimization
US6487715B1 (en) Dynamic code motion optimization and path tracing
JP3480973B2 (ja) 並列処理システムの動作解析装置
JPH09330233A (ja) 最適目的コード生成方法
CA2109799A1 (en) Optimizing compiler for computers
JP2002149416A (ja) プログラムの最適化方法及びこれを用いたコンパイラ
CN113196243A (zh) 使用编译器生成的仿真优化元数据改进仿真和跟踪性能
US5134705A (en) System and method for concurrency simulation
US5960171A (en) Dynamic signal loop resolution in a compiled cycle based circuit simulator
JPH02176938A (ja) 機械語命令最適化方式
JP3318051B2 (ja) 翻訳処理方法
JPH10320212A (ja) キャッシュ向け最適化方法
Nakatani et al. Making compaction-based parallelization affordable
Page Parameterised processor generation
Drieseberg et al. C to Cellular Automata and execution on CPU, GPU and FPGA
US20050251795A1 (en) Method, system, and program for optimizing code
US6694512B1 (en) Data processing device, data processing method and supply medium thereof
JP3551352B2 (ja) ループ分割方法
Graf Compiler backend generation using the VADL processor description language
Soest Compiling Second-Order Accelerate Programs to First-Order TensorFlow Graphs