JP3714201B2 - コール命令並び替え方法と装置並びにプログラム - Google Patents
コール命令並び替え方法と装置並びにプログラム Download PDFInfo
- Publication number
- JP3714201B2 JP3714201B2 JP2001191181A JP2001191181A JP3714201B2 JP 3714201 B2 JP3714201 B2 JP 3714201B2 JP 2001191181 A JP2001191181 A JP 2001191181A JP 2001191181 A JP2001191181 A JP 2001191181A JP 3714201 B2 JP3714201 B2 JP 3714201B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- call
- storage means
- argument
- call instruction
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、コンパイラ技術に関し、特に、コール命令の並び替え方法と装置に関する。
【0002】
【従来の技術】
プログラムのサブルーチン、ファンクション等の手続きは、ある一定の処理をまとめたものであり、その手続きを呼出すことで、まとめた処理が実行され、その際、該処理に入力として渡す値、処理からの戻り値の受け渡しが行われる。引数の受け渡しについて説明すると、手続きの呼び出し側と、呼び出された側で、引数と戻り値の受け渡しに使用する記憶域の取り決めを行っておき、呼び出し側で、引数の値を対応する記憶域に格納し、呼び出された側では、対応する記憶域から値を参照することで、受け渡しが行われる。
【0003】
プログラミング言語で記述されたソースプログラムからオブジェクトコード(機械語)を生成するコンパイラでは、ソースプログラムを入力して字句解析(lexical analysis)、構文解析(syntax analysis,parsing)等が行われ、さらに、必要な最適化が行われ、オブジェクトコードが生成される。
【0004】
従来のコンパイラにおいても、オブジェクトコードの最適化のために、命令の並び替えを行うコンパイラ・システムが知られている。例えば特許2501394号公報には、手続き呼出しにおける引数領域の使用と定義を解析した上で、引数評価列の評価順序を決定し、決定された評価順序に引数評価列の入れ替えを行うことにより、手続き呼出し時の引数に評価における退避、復元のコードを削減する手続き呼び出し翻訳装置が開示されている。
【0005】
また中間語の命令並び替えを行い実行速度の速い命令列を生成するコンパイル装置として、例えば特開2000−276356号公報には、中間語の命令列を調査し、選ばれなかった命令と依存関係がない命令を選んで命令並び替え範囲を設定し第1の命令列を生成し、第1の命令列の命令並び替え範囲内の命令を中間語より速く実行できるように並び替えて第2の命令列を生成するコンパイル装置が開示されている。さらに、例えば特開平8−83185号公報には、変数の生存区間(変数に格納されている値が有効となる期間)を検出し、生存区間の範囲によって、対応する生存変数集合保持部に変数を格納し、生存区間の範囲によって生存区間の重複検査を必要な割付対象間に対してのみ行うことで、変数の生存区間の重複検査を高速に行うことでコンパイル速度を向上させるコンパイラが開示されている。
【0006】
しかしながら、従来のコンパイラにおいて、手続き呼び出し命令(コール命令)を跨いでの命令の並び替えは行なわれていない、というのが実情である。その理由として、コール命令を並び替えの対象としても、得られる効果が少ないためと思料される。また、コールを含む命令列に、大量の命令が含まれる場合、メモリへの退避、メモリからの復帰命令が大量に生成され、性能が著しく劣ることも、その理由であるものと思料される。
【0007】
【発明が解決しようとする課題】
上記した通り、従来のコンパイラにおける、命令の並び替えでは、手続き呼び出し命令の並び替えは行われていず、上位フェーズで出力した中間言語にそのまま依存しており、コール命令の前後を跨いでレジスタの値が破壊されないように、レジスタの保存命令と復帰命令を生成している。すなわち、従来のコンパイラでは、コール命令を並び替えの対象命令としていないため、コール命令を挟んで保証しなければならないレジスタ上の値が存在する場合、メモリへのスピル、および、メモリからレジスタへのリストア命令を挿入し、レジスタの値の保証を行っており、その結果、処理性能の低下を招くことになる。
【0008】
したがって、本発明が解決しようとする課題は、コール命令を移動することにより、コール命令を挟んで保証しなければならない値を極力少なくすることにより、メモリへのスピル、およびリストアの生成を少なくし、高速に実行可能とする装置及び方法並びにプログラムを提供することにある。
【0009】
【課題を解決するための手段】
課題を解決するための手段を提供する本発明は、ソースプログラムをコンパイル処理して出力される中間語の命令列よりなり、手続き呼び出し命令(「コール命令」という)を含む命令列を記憶保持する第1の記憶手段に記憶されている中間語の命令列から、前記コール命令の引数の値を設定する命令を除外した命令列を、第2の記憶手段へ保存し、前記第2の記憶手段に保存されている中間語の命令列から、ロード命令、及び、ストア命令を除外したものを第3の記憶手段へ保存し、前記第3の記憶手段に保存されている中間語の命令列から、各命令間において各命令を跨いで生存している変数の数を決定し、前記生存する変数の数の最も少ない区間へ、前記コール命令を移動し、第4の記憶手段へ保存する構成としたものである。
【0010】
【発明の実施の形態】
発明の実施の形態について説明する。本発明は、手続き呼び出し命令(コール命令)を、上位フェーズ(コンパイラの構文解析、最適化処理等の上位フェーズ)の出力した中間言語に依存せずに、並び替えることにより、レジスタの保存/復帰命令を最小に抑えるように構成したものである。すなわち、アーキテクチャに応じた並び替えを行なう前に、コール命令の適切な位置を求め、並び替える。より詳細には、本発明は、その一実施の形態において、中間語からなり、コール命令を含む命令列を記憶する第1の命令列テーブル(111)に含まれるコール命令の引数を処理する式を、コール命令並び替えの対象から削除し、引数補正済み命令列テーブル(112)へ残りの命令を保存するコール命令引数補正手段(101)と、引数補正済み命令列テーブル(112)より、ロード命令及びストア命令を、コール命令並び替えの対象から削除し、ロード/ストア命令補正済み命令テーブル(113)へ残りの命令を保存するロード/ストア命令補正手段(102)と、ロード/ストア命令補正済み命令テーブル(113)に保存されている命令列から、各命令間において各命令を跨いで生存している変数の数を決定し、変数の生存する数の最も少ない区間の命令の前へ、前記コール命令を移動し、第2の命令列テーブル(114)に保存するコール命令並び替え手段(103)と、を備える。
【0011】
本発明は、ソースプログラムを入力するコンパイル処理で生成される中間言語に対して、コール命令並び替えをコンピュータで行う方法であって、以下のステップよりなる。
【0012】
ステップ1:中間語からなり、コール命令を含む命令列を記憶する第1の命令列テーブル(111)に含まれるコール命令の引数を処理する式をなす命令列をコール命令並び替えの対象から削除し、引数補正済み命令列テーブル(112)へ命令を保存する。
【0013】
ステップ2:引数補正済み命令列テーブル(112)より、ロード命令及びストア命令を、コール命令並び替えの対象から削除し、ロード/ストア命令補正済み命令テーブル(113)へ命令を保存する。その際、並び替え対象のコール命令の引数又は戻り値を処理する式に関連する変数を定義するか、該変数を参照する、ロード命令とストア命令を削除すればよい。
【0014】
ステップ3:ロード/ストア命令補正済み命令テーブル(113)に保存されている命令列から、各命令間において各命令を跨いで生存している変数の数を決定し、変数の生存する数の最も少ない区間へ、コール命令を移動し、第2の命令列テーブル(114)に保存する。
【0015】
【実施例】
上記した発明の実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して説明する。図1は、一般的なコンパイル処理の工程を示している。第1のコンパイル処理をなすフロントエンド11では、各プログラミング言語で記述されているソースファイル20を読み込み、字句解析、構文解析を行い、言語に依存しない中間語(中間コード)を生成し、第1の中間語ファイル21へ出力する。
【0016】
また、第2のコンパイル処理をなす最適化では、第1の中間語ファイル21から中間語を入力し、中間語に対して各種最適化を施し、第2の中間語ファイル22を出力する。なお、第2のコンパイル処理をなす最適化については、文献1(A.V.エイホ、R.セシィ、J.D. ウルマン、「コンパイラ I」、株式会社サイエンス社)等が参照される。
【0017】
第3のコンパイル処理をなす命令並び替えでは、第2の中間語ファイル22を入力し、命令の並び替えを行う。そして、命令の並び替えが行われた中間語から、ターゲット装置のオブジェクトコードをオブジェクトファイル23に出力する。
【0018】
本発明は、第1、第2のコンパイル処理が行われた後の、中間語の命令列におけるコール命令の並び替えを行うものであり、第1、第2のコンパイル処理は、公知の任意のものが用いられる、またソースプログラムの言語は、C、Fortran等任意であってよい。
【0019】
図2は、本発明の一実施例の命令並び替え装置の構成を示す図である。図2を参照すると、この実施例の命令並び替え装置は、コール命令引数補正手段101と、ロード/ストア命令補正手段102と、コール命令並び替え手段103と、第1の命令列テーブル111と、引数補正済み命令列テーブル112と、ロード/ストア命令補正済み命令テーブル113と、第2の命令列テーブル114と、を備えている。コール命令引数補正手段101と、ロード/ストア命令補正手段102、コール命令並び替え手段103は、コンピュータで実行されるプログラムによりその機能が実現され、第1の命令列テーブル111、引数補正済み命令列テーブル112と、ロード/ストア命令補正済み命令テーブル113と、第2の命令列テーブル114は記憶手段に格納される。
【0020】
これらの各手段は、それぞれ概略つぎのように動作する。コール命令引数補正手段101は、第1の命令列テーブル111に含まれる各コール命令の引数を処理する式を、命令の並び替え対象から削除し、引数補正済み命令列テーブル112へ命令を保存する。なお、並び替え対象外とする設定は、引数補正済み命令列テーブル112において、各命令に対応して設けられたフラグ(削除フラグ)をオンとすることで行ってもよい。
【0021】
ロード/ストア命令補正手段102は、引数補正済み命令列テーブル112より、ロード命令及びストア命令を、命令の並び替え対象から削除し、ロード/ストア命令補正済み命令テーブル113へ命令を保存する。なお、並び替え対象外とする設定は、ロード/ストア命令補正済み命令テーブル113において命令に対応して設けられたフラグ(削除フラグ)をオンとすることで行ってもよい。ロード/ストア命令補正手段102は、引数補正済み命令列テーブル112において、対象となるコール命令の引数又は戻り値に関連する式の変数を定義、参照するロード命令、ストア命令を並び替え対象外とする。並び替え対象のコール命令に関連しないプログラムブロック(中間語)のロード命令とストア命令は削除する必要はないことは勿論である。
【0022】
コール命令並び替え手段103は、コール命令引数補正手段101およびロード/ストア命令補正手段102によって、コール命令並び替え対象から削除された残りの命令列から、各命令間において、各命令を跨いで生存している変数の数を決定し、最も変数の生存していない区間へ、コール命令を移動する。なお、変数の生存する生存区間とは、変数に保持されている値が有効となる区間であり、変数に値を設定(定義)する中間語の命令から、その定義された値を最後に参照する中間語命令までのプログラムの区間に対応し、変数に値を定義する中間語命令は生存区間の開始点、生存区間中で定義された値を参照している中間語命令のうち最後に参照する中間語命令は、生存区間の終了点に相当する。
【0023】
次に、図3を参照して、この実施例の動作について詳細に説明する。第1の命令テーブル111にあるように、コール命令(CALL)を含む8命令での並び替えを行うものとする。t1〜t4は中間言語で割り付けられる変数(資源)であり、レジスタ等に対応する。
【0024】
(1)の命令 LD t1 = a は、aの値をt1にロードする。
(2)の命令 LD t2 = b は、bの値をt2にロードする。
(3)の命令 LD t3 = c は、cの値をt3にロードする。a、b、cはメモリのアドレス又はイミーディエット値である。
(4)の命令 CALL t4 = sub(t1,t2) は、手続きsubを引数t1、t2の値を受け渡して呼び出し、手続きsubの処理の戻り値をt4に設定する。
(5)の命令 ADD t5= t1,t2 は、t1とt2の加算結果をt5にセットする。
(6)の命令 ADD t6= t3,t5 は、t3とt5の加算結果をt6にセットする。
(7)の命令 ADD t7= t6,t4 は、t6とt4の加算結果をt7にセットする。
(8)の命令 st [d] = t7 は、t7を、メモリアドレス[d]にストアする。
【0025】
命令の右端の欄(生存する変数の欄)のt1等は、該命令区間で生存する変数の一覧である。
(1)の命令では、変数t1が定義されており、t1の生存区間の開始点となる。
(2)の命令では、変数t2が定義されており、t2の生存区間の開始点となり、t1、t2が生存している。
(3)の命令では、変数t3が定義されており、t3の生存区間の開始点となり、t1、t2、t3が生存している。
(4)の命令では、変数t4が定義されており、t4の生存区間の開始点となり、t1〜t4が生存している。
(5)の命令では、変数t5が定義されており、t5の生存区間の開始点となり、t1〜t5が生存しており、t1、t2の生存区間の終了点となる。
(6)の命令では、変数t6が定義されており、t6の生存区間の開始点となり、t3〜t6が生存しており、t3、t5の生存区間の終了点となる。
(7)の命令では、変数t7が定義されており、t7の生存区間の開始点となり、t4、t6、t7が生存しており、t6、t4の生存区間の終了点となる。
(8)の命令では、変数t7の生存区間の終了点となる。
【0026】
まず、コール命令引数補正手段101において、第1の命令列テーブル111の命令列から、(4)のコール命令の引数であるt1、およびt2の生成命令(t1、t2に値を設定する命令)である(1)の命令(LD t1 =a)および(2)の命令(LD t2 =b)を、並び替え対象外の命令とし、引数補正済み命令列テーブル112へ命令を保存する。引数補正済み命令列テーブル112において、該当する命令のフラグをオンに設定する。
【0027】
次に、ロード/ストア命令補正手段102において、引数補正済み命令列テーブル112より、ロード命令(LD t3 =c)である(3)の命令と、ストア命令である(8)の命令(st [d]=t7)を、並び替え対象外の命令として、ロード/ストア命令補正済み命令テーブル113へ保存する。このロード/ストア命令補正手段102は、コール命令とその前後の命令について、命令間の依存関係の元となる変数の値を定義あるいはその変数を参照するロード命令とストア命令を、並び替え対象外として削除する。
【0028】
コール命令並び替え手段103において、ロード/ストア命令補正済み命令テーブル113に保存されている命令列の命令(4)から命令(7)の間で、最も変数の生存していない命令を探し出す。
【0029】
命令(4)から命令(5)に跨がって生存する変数は、t1、t2、t3、t4(ただし、t1、t2の生存区間は命令(4)の区間まで)、
命令(5)から命令(6)に跨がって生存する変数は、t3、t4、t5、
命令(6)から命令(7)に跨がって生存する変数は、t4、t6、
となり、各命令区間に跨がって生存する変数の最も少ない区間は、命令(6)から命令(7)となる。
【0030】
よって、命令(7)の直前、すなわち命令(6)と(7)の間が、最も適当な位置と判断し、そこへ、コール命令CALL t4=sub(t1,t2)を移動する。
【0031】
コール命令を移動した結果が、第2の命令列テーブル114に格納され、この中間言語から、ターゲットマシンのオブジェクトコードが生成される。
【0032】
命令並び替え前の第1の命令列テーブル111の場合、コール命令(CALL)を跨いで生存している変数は、t1、t2、t3である。これに対して、第2の命令列テーブル114に示されるように、コール命令(CALL)の前後を跨いで生存している変数はt6のみとなり、コール命令を挟んで保証しなければならない変数の個数を減少させている。
【0033】
【発明の効果】
以上説明したように、本発明によれば、コール命令を移動することにより、コール命令を挟んで保証しなければならない変数の個数を減少させることにより、メモリへのスピルおよびリストアの生成を少なくし、高速に実行できるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例が適用されるコンパイラの処理を説明するための図である。
【図2】本発明の一実施例の構成を示す図である。
【図3】本発明の一実施例を具体的に説明するための図である。
【符号の説明】
11 フロントエンド(コンパイラ処理1)
12 最適化(コンパイラ処理2)
13 命令列並び替え(コンパイラ処理3)
20 ソースファイル
21 中間語ファイル
22 中間語ファイル
23 オブジェクトファイル
101 コール命令引数補正手段
102 ロード/ストア命令補正手段
103 コール命令並び替え手段
111 第1の命令列テーブル
112 引数補正済み命令列テーブル
113 ロード/ストア命令補正済み命令テーブル
114 第2の命令列テーブル
Claims (12)
- 手続きの呼び出し時に呼び出し側と呼び出された側で引数又は引数と戻り値の受け渡しが行われる手続き呼び出し命令(「コール命令」という)を含むソースプログラムからオブジェクトコードを生成する言語翻訳装置のコール命令並び替え装置において、
前記コール命令を含む命令列を記憶保持する第1の記憶手段と、
前記第1の記憶手段に記憶される命令列から、前記コール命令の引数の値を生成する命令を除外し、さらに、ロード命令とストア命令を並び替え対象外として、除外し、第2の記憶手段に記憶する手段と、
前記第2の記憶手段に記憶された命令列について、各命令を跨いで生存している変数の数を決定し、前記生存する変数の数の最も少ない区間へ、前記コール命令を移動する手段と、
を備えている、ことを特徴とするコール命令並び替え装置。 - ソースプログラムをコンパイル処理して出力される中間語の命令列よりなり、手続き呼び出し命令(「コール命令」という)を含む命令列を記憶保持する第1の記憶手段と、
前記第1の記憶手段に記憶されている中間語の命令列から、前記コール命令の引数の値を設定する命令を除外した命令列を、第2の記憶手段へ保存する手段と、
前記第2の記憶手段に保存されている中間語の命令列から、ロード命令とストア命令を、並び替え対象外として、除外したものを第3の記憶手段へ保存する手段と、
前記第3の記憶手段に保存されている中間語の命令列から、各命令間において各命令を跨いで生存している変数の数を決定し、前記生存する変数の数の最も少ない区間へ、前記コール命令を移動し、第4の記憶手段へ保存する手段と、
を備えている、ことを特徴とするコール命令並び替え装置。 - 前記並び替え対象外とされるロード命令とストア命令が、前記コール命令の引数又は戻り値を処理する式に関連する変数を定義するか、該変数を参照する、ロード命令とストア命令である、ことを特徴とする請求項1又は2記載のコール命令並び替え装置。
- 中間語からなり、手続き呼び出し命令(「コール命令」という)を含む命令列を記憶保持する第1の命令列テーブルと、
前記第1の命令列テーブルに記憶されている、前記コール命令の引数を処理する式に対応する命令を、並び替えの対象から削除し、引数補正済み命令列テーブルへ残りの命令を保存するコール命令引数補正手段と、
前記引数補正済み命令列テーブルより、ロード命令及びストア命令を、並び替えの対象から削除し、ロード/ストア命令補正済み命令テーブルへ、残りの命令を保存するロード/ストア命令補正手段と、
前記ロード/ストア命令補正済み命令テーブルに保存されている命令列から、各命令間において各命令を跨いで生存している変数の数を決定し、前記生存する変数の数の最も少ない区間へ、前記コール命令を移動し、第2の命令列テーブルに保存するコール命令並び替え手段と、
を備えたことを特徴とするコール命令並び替え装置。 - 前記ロード/ストア命令補正手段は、前記コール命令の引数又は戻り値を処理する式に関連する変数を定義するか、前記変数を参照するロード命令とストア命令を、並び替え対象外とする、ことを特徴とする請求項4記載のコール命令並び替え装置。
- 前記コール命令並び替え手段は、前記生存する変数の数の最も少ない命令の直前に、前記コール命令を移動する、ことを特徴とする請求項4記載のコール命令並び替え装置。
- ソースプログラムを入力するコンパイル処理によって生成される中間言語の命令列における手続き呼び出し命令(「コール命令」という)の並び替えをコンピュータで行う方法であって、
前記コンパイル処理によって生成される中間語の命令列よりなり、手続き呼び出し命令(「コール命令」という)を含む命令列を記憶保持する第1の記憶手段に記憶されている中間語の命令列から、前記コール命令の引数の値を設定する命令を除外した命令列を、第2の記憶手段へ保存するステップと、
前記第2の記憶手段に保存されている中間語の命令列から、ロード命令、及び、ストア命令を除外したものを第3の記憶手段へ保存するステップと、
前記第3の記憶手段に保存されている中間語の命令列から、各命令間において各命令を跨いで生存している変数の数を決定するステップと、
前記生存する変数の数の最も少ない区間へ、前記コール命令を移動し、第4の記憶手段へ保存するステップと、
を含む、ことを特徴とするコール命令並び替え方法。 - 前記コール命令の引数又は戻り値を処理する式に関連する変数を定義するか、前記変数を参照するロード命令とストア命令を、並び替え対象外として、除外する、ことを特徴とする請求項7記載のコール命令並び替え方法。
- 前記生存する変数の数の最も少ない命令の直前に、前記コール命令を移動する、ことを特徴とする請求項7記載のコール命令並び替え方法。
- ソースプログラムを入力するコンパイル処理によって生成される中間言語の命令列における手続き呼び出し命令(「コール命令」という)の並び替えをコンピュータで行うためのプログラムであって、
(a)前記コンパイル処理して出力される中間語の命令列よりなり、手続き呼び出し命令(「コール命令」という)を含む命令列を記憶保持する第1の記憶手段に記憶されている中間語の命令列から、前記コール命令の引数の値を設定する命令を除外した命令列を、第2の記憶手段へ保存する処理と、
(b)前記第2の記憶手段に保存されている中間語の命令列から、ロード命令、及び、ストア命令を除外したものを第3の記憶手段へ保存する処理と、
(c)前記第3の記憶手段に保存されている中間語の命令列から、各命令間において各命令を跨いで生存している変数の数を決定する処理と、
(d)前記生存する変数の数の最も少ない区間へ、前記コール命令を移動し、第4の記憶手段へ保存する処理と、
の前記(a)乃至(d)の各処理を、前記コンピュータに実行させるためのプログラム。 - 請求項10記載のプログラムにおいて、
前記生存する変数の数の最も少ない命令の直前に、前記コール命令を移動する処理を、前記コンピュータに実行させるためのプログラム。 - 請求項10記載のプログラムにおいて、
前記コール命令の引数又は戻り値を処理する式に関連する変数を定義するか、該変数を参照する、ロード命令とストア命令を、並び替え対象外として、除外する処理を、前記コンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001191181A JP3714201B2 (ja) | 2001-06-25 | 2001-06-25 | コール命令並び替え方法と装置並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001191181A JP3714201B2 (ja) | 2001-06-25 | 2001-06-25 | コール命令並び替え方法と装置並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003005982A JP2003005982A (ja) | 2003-01-10 |
JP3714201B2 true JP3714201B2 (ja) | 2005-11-09 |
Family
ID=19029846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001191181A Expired - Fee Related JP3714201B2 (ja) | 2001-06-25 | 2001-06-25 | コール命令並び替え方法と装置並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3714201B2 (ja) |
-
2001
- 2001-06-25 JP JP2001191181A patent/JP3714201B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003005982A (ja) | 2003-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2811990B2 (ja) | プログラム処理装置及びプログラム処理方法 | |
US5586328A (en) | Module dependency based incremental compiler and method | |
JP3113792B2 (ja) | 最適化装置 | |
US6966055B2 (en) | Optimizing post-link code | |
JP2001147819A (ja) | 最適化装置および記録媒体 | |
US20140053129A1 (en) | Parallelization of Dataflow Actors with Local State | |
JPH07129412A (ja) | コンパイル方法及び装置 | |
US7386843B2 (en) | Method and system for register allocation | |
US20040015884A1 (en) | Relocation format for linking | |
US7017154B2 (en) | Eliminating store/restores within hot function prolog/epilogs using volatile registers | |
JPH0738158B2 (ja) | コード最適化方法およびコンパイラ・システム | |
JP2002297396A (ja) | コンパイラ、変換プログラム、例外処理プログラム及びこれらを用いたコンピュータ装置 | |
JP3539613B2 (ja) | ループ飛び出し文を含むループに対する配列サマリ解析方法 | |
US20060107258A1 (en) | Program, program code optimization method, program code compile method, program code, and information processing system | |
JP3714201B2 (ja) | コール命令並び替え方法と装置並びにプログラム | |
JP3871312B2 (ja) | プログラム変換方法、これを用いたデータ処理装置及びプログラム | |
KR20060092728A (ko) | 프리-프로세스에서 파일 검색 시간 단축을 통한 컴파일러의컴파일 속도 향상 방법 | |
US20170344351A1 (en) | Information processing apparatus, compiling management method, and recording medium | |
KR102130016B1 (ko) | 자동 캐싱을 위한 컴파일링 방법 및 장치, 이를 위한 기록매체 | |
JP3614372B2 (ja) | コンパイル方法 | |
JP2585793B2 (ja) | コンパイラシステム | |
JPH11149380A (ja) | コンパイラとプログラム最適化方法およびその処理プログラムを記録した記録媒体 | |
JP2001075814A (ja) | コンパイル装置およびその方法 | |
JP2002073347A (ja) | 例外処理方法及びコンパイラ | |
JP2000242504A (ja) | コンパイラ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050725 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050802 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050815 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080902 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |