JP4039633B2 - 最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 - Google Patents
最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 Download PDFInfo
- Publication number
- JP4039633B2 JP4039633B2 JP2003309675A JP2003309675A JP4039633B2 JP 4039633 B2 JP4039633 B2 JP 4039633B2 JP 2003309675 A JP2003309675 A JP 2003309675A JP 2003309675 A JP2003309675 A JP 2003309675A JP 4039633 B2 JP4039633 B2 JP 4039633B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- load instruction
- target
- register
- execution
- 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
- 238000000034 method Methods 0.000 title claims description 32
- 238000012545 processing Methods 0.000 claims description 94
- 238000005457 optimization Methods 0.000 claims description 28
- 230000000644 propagated effect Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 description 17
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/441—Register allocation; Assignment of physical memory space to logical memory space
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
に関する。特に、本発明は、冗長な命令を削除する最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体に関する。
実行可能範囲生成手段120は、当該基本ブロック中のスピルイン命令のそれぞれについて、当該基本ブロックの実行開始位置から当該スピルイン命令の実行位置までの範囲で、レジスタ割当手段100により変数に割り当てられていないレジスタの集合を求める。但し、スピルイン命令自体によるレジスタの使用は含めない。そして、実行可能範囲生成手段120は、基本ブロックにおける複数のスピルイン命令のそれぞれにおける当該集合の積集合を、GEN集合として生成する。なお、実行可能範囲生成手段120は、対象スピルイン命令がデータを読み出すアドレスと同一のアドレスに書き込みを行うスピルアウト命令が存在する場合は、当該基本ブロックのうち当該スピルアウト命令に先立って実行される範囲についてGEN集合を生成する。
実行可能範囲生成手段120は、当該基本ブロック中のスピルイン命令のそれぞれについて、当該スピルイン命令の実行位置から当該基本ブロックの実行終了位置までの範囲で、レジスタ割当手段100により変数に割り当てられていないレジスタの集合を求める。そして、実行可能範囲生成手段120は、基本ブロックにおける複数のスピルイン命令のそれぞれにおける当該集合の積集合を、GEN’集合として生成する。なお、実行可能範囲生成手段120は、対象スピルイン命令がデータを読み出すアドレスと同一のアドレスに書き込みを行うスピルアウト命令が存在する場合は、当該基本ブロックのうち当該スピルアウト命令より後に実行される範囲についてGEN’集合を生成する。
実行可能範囲生成手段120は、当該基本ブロック中で一貫してレジスタ割当手段100により変数に割り当てられていないレジスタの集合を生成する。但し、スピルイン命令自体によるレジスタの使用は含まれない。そして、実行可能範囲生成手段120は、生成した当該集合の補集合を、KILL集合として生成する。また、実行可能範囲生成手段120は、対象スピルイン命令がデータを読み出すアドレスと同一のアドレスに書き込みを行うスピルアウト命令が存在する場合は、全てのレジスタの集合をKILL集合として生成する。
(項目2) 変数をレジスタに割り当てるレジスタ割当手段と、前記レジスタ割当手段によりレジスタに割当不能と判断された各変数について、当該変数の値を使用する各命令に先立って当該変数の値をメモリからロードするスピルイン命令を生成するスピルイン命令生成手段とを更に備え、前記実行可能範囲検出手段は、前記スピルイン命令を前記対象ロード命令である対象スピルイン命令として、前記対象スピルイン命令を遡ることにより到達可能な全ての実行経路のそれぞれについて前記実行可能範囲を検出し、前記命令生成手段は、前記実行経路のそれぞれについて、前記実行可能範囲において前記対象スピルイン命令についての前記先行ロード命令が存在しない場合に、前記実行可能範囲内に前記先行ロード命令を生成し、前記命令置換手段は、前記対象スピルイン命令を削除すると共に、前記対象スピルイン命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に置換する項目1記載の最適化コンパイラ。
(項目4) 前記命令生成手段は、前記実行可能範囲の何れかが互いに重複する複数の対象ロード命令について、当該複数の対象ロード命令についての計算的最適性(computational optimality)を満たす範囲内に、前記先行ロード命令を生成する項目3記載の最適化コンパイラ。
(項目5) 前記計算的最適性を保持する場合において、前記命令生成手段により生成される先行ロード命令及び他の先行ロード命令における読み出し先のレジスタを同一に設定できか否かを判断する同一性判断手段を更に備え、同一に設定できない場合に、前記命令生成手段は、前記実行可能範囲のうち、当該計算的最適性が満たされず、かつ当該先行ロード命令及び他の先行ロード命令による読み出し先のレジスタを同一に設定可能となる位置に、当該先行ロード命令を生成する項目4記載の最適化コンパイラ。
(項目7) 前記命令生成手段は、前記計算的最適性を満たす範囲のうち、更に、前記先行ロード命令により読み出されたデータの生存区間が最小となる生存区間的最適性(lifetime optimality)を満たす位置に、前記先行ロード命令を生成する項目4記載の最適化コンパイラ。
(項目8) 前記生存区間的最適性を満たす位置から、前記先行ロード命令により読み出されるデータを使用する命令の実行位置までに他の命令が実行されるのに要する処理時間である必要処理時間と、前記先行ロード命令の実行を開始してからデータの読み出しが完了するまでに要するロード処理時間とを解析するロード遅延解析手段を更に備え、前記命令生成手段は、前記必要処理時間が、前記ロード処理時間より小さい場合に、前記生存区間的最適性を満たす位置に先立って実行される位置に、前記先行ロード命令を生成する項目7記載の最適化コンパイラ。
(項目10) 前記命令生成手段は、前記実行経路のそれぞれについて前記実行可能範囲に先行ロード命令が存在しない場合に、前記先行ロード命令として、他の先行ロード命令がデータを読み出すレジスタと同一である共通レジスタにデータを読み出すロード命令を生成し、前記命令置換手段は、前記対象ロード命令により読み出されたデータを使用する命令を、前記共通レジスタに保持されたデータを使用する命令に置換する項目1記載の最適化コンパイラ。
(項目11) 前記命令置換手段により前記対象ロード命令が削除された場合に、当該対象ロード命令によってのみ読み出されており、かつ生成された前記先行ロード命令により読み出されないデータを書き込むストア命令を削除するストア命令削除手段を更に備える項目1記載の最適化コンパイラ。
(項目12) 最適化対象の対象プログラムにおいて、メモリからレジスタにデータを読み出すロード命令を最適化する最適化コンパイラであって、前記対象プログラム中の最適化対象の対象ロード命令から実行順序を遡ることにより到達する全ての実行経路のそれぞれについて、ロード命令が実行された場合に当該ロード命令により読み出されたデータをレジスタに保持して前記対象ロード命令の実行位置に伝達可能である、当該ロード命令の実行可能範囲を検出する実行可能範囲検出手段と、前記実行経路のそれぞれについて、前記実行可能範囲において前記対象ロード命令に先立って実行される、前記対象ロード命令と同一のアドレスから同一のデータを読み出す先行ロード命令が存在する場合に、前記対象ロード命令を削除すると共に、前記対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に置換する命令置換手段とを備える最適化コンパイラ。
(項目14) 最適化対象の対象プログラムにおいて、メモリからレジスタにデータを読み出すロード命令を最適化する最適化コンパイラとしてコンピュータを機能させるコンパイラプログラムであって、前記対象プログラム中の最適化対象の対象ロード命令から実行順序を遡ることにより到達する全ての実行経路のそれぞれについて、ロード命令が実行された場合に当該ロード命令により読み出されたデータをレジスタに保持して前記対象ロード命令の実行位置に伝達可能である、当該ロード命令の実行可能範囲を検出する実行可能範囲検出手段と、前記実行経路のそれぞれについて、前記実行可能範囲において前記対象ロード命令に先立って実行される、前記対象ロード命令と同一のアドレスから同一のデータを読み出す先行ロード命令が存在しない場合に、前記実行可能範囲内に前記先行ロード命令を生成する命令生成手段と、前記対象ロード命令を削除すると共に、前記対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に置換する命令置換手段として機能させるコンパイラプログラム。
(項目15) 項目14記載のコンパイラプログラムを記録した記録媒体。
100 レジスタ割当手段
110 スピルイン命令生成手段
120 実行可能範囲生成手段
125 ロード遅延解析手段
130 同一性判断手段
140 コピー処理時間算出手段
150 命令生成手段
160 命令置換手段
170 スピルアウト命令削除手段
800 基本ブロック
810 基本ブロック
820 基本ブロック
Claims (12)
- 最適化対象の対象プログラムにおいて、メモリからレジスタにデータを読み出すロード命令を最適化するコンピュータであるコンパイラ装置であって、
前記対象プログラムを記憶する記憶装置と、
前記対象プログラム中の最適化対象の対象ロード命令から実行順序を遡ることにより到達する全ての実行経路のそれぞれについて、読み出したデータをレジスタに保持して当該実行経路における前記対象ロード命令が実行される位置に伝達するための他のロード命令の、当該実行経路における実行可能範囲を、前記コンピュータのCPUの制御により前記記憶装置にアクセスして検出する実行可能範囲検出手段と、
前記実行経路のそれぞれについて、前記実行可能範囲において、前記対象ロード命令に先立って実行される、前記対象ロード命令と同一のアドレスから同一のデータを読み出す先行ロード命令が存在しない場合に、前記実行可能範囲内に前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成する命令生成手段と、
前記対象ロード命令を削除すると共に、前記対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に、前記CPUの制御により前記記憶装置にアクセスして置換する命令置換手段と
を備えるコンパイラ装置。 - 変数をレジスタに割り当てるレジスタ割当手段と、
前記レジスタ割当手段によりレジスタに割当不能と判断された各変数について、当該変数の値を使用する各命令に先立って当該変数の値をメモリからロードするスピルイン命令を、前記CPUの制御により前記記憶装置にアクセスして生成するスピルイン命令生成手段と
を更に備え、
前記実行可能範囲検出手段は、前記スピルイン命令を前記対象ロード命令である対象スピルイン命令として、前記対象スピルイン命令を遡ることにより到達可能な全ての実行経路のそれぞれについて前記実行可能範囲を、前記CPUの制御により前記記憶装置にアクセスして検出し、
前記命令生成手段は、前記実行経路のそれぞれについて、前記実行可能範囲において前記対象スピルイン命令についての前記先行ロード命令が存在しない場合に、前記実行可能範囲内に前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成し、
前記命令置換手段は、前記対象スピルイン命令を削除すると共に、前記対象スピルイン命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に、前記CPUの制御により前記記憶装置にアクセスして置換する
請求項1記載のコンパイラ装置。 - 前記実行可能範囲検出手段は、互いに同一のアドレスから同一のデータを読み出す複数の前記対象ロード命令のそれぞれについて、複数の前記実行経路における前記実行可能範囲を、前記CPUの制御により前記記憶装置にアクセスして検出し、
前記命令生成手段は、第1の前記対象ロード命令における前記実行経路のそれぞれについて、前記実行可能範囲において前記先行ロード命令が存在せず、かつ当該実行可能範囲及び第2の前記対象ロード命令における実行可能範囲の少なくとも一部が重複する場合に、当該重複する範囲内である計算的最適性(computational optimality)を満たす範囲内に、前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成し、
前記命令置換手段は、前記先行ロード命令より後に実行されることが定まっておりかつ前記実行可能範囲に存在する対象ロード命令のそれぞれを削除すると共に、当該対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に、前記CPUの制御により前記記憶装置にアクセスして置換する
請求項1記載のコンパイラ装置。 - 前記計算的最適性を保持する場合において、前記命令生成手段により生成される先行ロード命令、及び、前記実行可能範囲において前記対象ロード命令に先立って実行され、前記対象ロード命令と同一のアドレスから同一のデータを読み出す他の命令である他の先行ロード命令における、読み出し先のレジスタを同一に設定できか否かを、前記CPUの制御により前記記憶装置にアクセスして判断する同一性判断手段を更に備え、
同一に設定できない場合に、前記命令生成手段は、前記実行可能範囲のうち、当該計算的最適性が満たされず、かつ当該先行ロード命令及び当該他の先行ロード命令による読み出し先のレジスタを同一に設定可能となる、実行経路上の位置に、当該先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成する
請求項3記載のコンパイラ装置。 - 前記命令生成手段は、前記計算的最適性を満たす範囲のうち、更に、前記先行ロード命令により読み出されたデータの生存区間が最小となる生存区間的最適性(lifetime optimality)を満たす、実行経路上の位置に、前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成する
請求項3記載のコンパイラ装置。 - 前記実行経路に前記先行ロード命令が存在しない場合に、前記生存区間的最適性を満たす当該実行経路における位置から、前記先行ロード命令により読み出されるデータを使用する命令の当該実行経路における位置までに要する処理時間である必要処理時間と、前記先行ロード命令の実行を開始してから完了するまでに要するロード処理時間とを、前記CPUの制御により前記記憶装置にアクセスして解析するロード遅延解析手段を更に備え、
前記命令生成手段は、前記必要処理時間が、前記ロード処理時間より小さい場合に、前記生存区間的最適性を満たす実行経路上の位置に先立って実行される実行経路上の位置に、前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成する
請求項5記載のコンパイラ装置。 - 前記命令生成手段は、前記必要処理時間が前記ロード処理時間より小さい場合に、前記生存区間的最適性を満たす実行経路上の位置から、前記ロード処理時間から前記必要処理時間を減じた時間先立って実行される実行経路上の位置に、前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成する
請求項6記載のコンパイラ装置。 - 前記命令生成手段は、前記実行経路のそれぞれについて、前記実行可能範囲に前記先行ロード命令が存在しない場合に、前記先行ロード命令として、前記実行可能範囲において前記対象ロード命令に先立って実行され、前記対象ロード命令と同一のアドレスから同一のデータを読み出す他の命令である他の先行ロード命令と、共通のレジスタにデータを読み出すロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成し、
前記命令置換手段は、前記対象ロード命令により読み出されたデータを使用する命令を、前記共通のレジスタに保持されたデータを使用する命令に、前記CPUの制御により前記記憶装置にアクセスして置換する
請求項1記載のコンパイラ装置。 - 最適化対象の対象プログラムにおいて、メモリからレジスタにデータを読み出すロード命令を最適化するコンピュータであるコンパイラ装置であって、
前記対象プログラムを記憶する記憶装置と、
前記対象プログラム中の最適化対象の対象ロード命令から実行順序を遡ることにより到達する全ての実行経路のそれぞれについて、読み出したデータをレジスタに保持して当該実行経路における前記対象ロード命令が実行される位置に伝達するための他のロード命令の、当該実行経路における実行可能範囲を、前記コンピュータのCPUの制御により前記記憶装置にアクセスして検出する実行可能範囲検出手段と、
前記実行経路のそれぞれについて、前記実行可能範囲において前記対象ロード命令に先立って実行される、前記対象ロード命令と同一のアドレスから同一のデータを読み出す先行ロード命令が存在する場合に、前記対象ロード命令を削除すると共に、前記対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に、前記CPUの制御により前記記憶装置にアクセスして置換する命令置換手段と
を備えるコンパイラ装置。 - コンピュータの記憶装置に記憶された、最適化対象の対象プログラムにおいて、メモリからレジスタにデータを読み出すロード命令を最適化するコンパイル方法であって、
前記コンピュータのCPUが、前記対象プログラム中の最適化対象の対象ロード命令から実行順序を遡ることにより到達する全ての実行経路のそれぞれについて、読み出したデータをレジスタに保持して当該実行経路における前記対象ロード命令が実行される位置に伝達するための他のロード命令の、当該実行経路における実行可能範囲を、前記記憶装置にアクセスして実行可能範囲検出段階と、
前記CPUが、前記実行経路のそれぞれについて、前記実行可能範囲において前記対象ロード命令に先立って実行される、前記対象ロード命令と同一のアドレスから同一のデータを読み出す先行ロード命令が存在しない場合に、前記実行可能範囲内に前記先行ロード命令を、前記記憶装置にアクセスして生成する命令生成段階と、
前記CPUが、前記対象ロード命令を削除すると共に、前記対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に、前記記憶装置にアクセスして置換する命令置換段階と
を備えるコンパイル方法。 - 最適化対象の対象プログラムにおいて、メモリからレジスタにデータを読み出すロード命令を最適化するコンピュータであるコンパイラ装置として前記コンピュータを機能させるコンパイラプログラムであって、
前記対象プログラムを記憶する記憶装置と、
前記対象プログラム中の最適化対象の対象ロード命令から実行順序を遡ることにより到達する全ての実行経路のそれぞれについて、読み出したデータをレジスタに保持して当該実行経路における前記対象ロード命令が実行される位置に伝達するための他のロード命令の、当該実行経路における実行可能範囲を、前記コンピュータのCPUの制御により前記記憶装置にアクセスして検出する実行可能範囲検出手段と、
前記実行経路のそれぞれについて、前記実行可能範囲において前記対象ロード命令に先立って実行される、前記対象ロード命令と同一のアドレスから同一のデータを読み出す先行ロード命令が存在しない場合に、前記実行可能範囲内に前記先行ロード命令を、前記CPUの制御により前記記憶装置にアクセスして生成する命令生成手段と、
前記対象ロード命令を削除すると共に、前記対象ロード命令により読み出されたデータを使用する命令を、前記先行ロード命令により読み出されレジスタに保持されて伝播されるデータを使用する命令に、前記CPUの制御により前記記憶装置にアクセスして置換する命令置換手段と
して機能させるコンパイラプログラム。 - 請求項11記載のコンパイラプログラムを記録した記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003309675A JP4039633B2 (ja) | 2003-09-02 | 2003-09-02 | 最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 |
US10/929,950 US20050050533A1 (en) | 2003-09-02 | 2004-08-30 | Optimizing compiler |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003309675A JP4039633B2 (ja) | 2003-09-02 | 2003-09-02 | 最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005078474A JP2005078474A (ja) | 2005-03-24 |
JP4039633B2 true JP4039633B2 (ja) | 2008-01-30 |
Family
ID=34214198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003309675A Expired - Fee Related JP4039633B2 (ja) | 2003-09-02 | 2003-09-02 | 最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050050533A1 (ja) |
JP (1) | JP4039633B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873952B2 (en) * | 2006-03-09 | 2011-01-18 | Oracle America, Inc. | Code transformation to optimize fragments that implement constant loading |
US10365900B2 (en) | 2011-12-23 | 2019-07-30 | Dataware Ventures, Llc | Broadening field specialization |
US10261764B2 (en) * | 2014-05-13 | 2019-04-16 | Oracle International Corporation | Handling value types |
US10733099B2 (en) | 2015-12-14 | 2020-08-04 | Arizona Board Of Regents On Behalf Of The University Of Arizona | Broadening field specialization |
WO2018237342A1 (en) | 2017-06-22 | 2018-12-27 | Dataware Ventures, Llc | FIELD SPECIALIZATION TO REDUCE MEMORY ACCESS BLOCKAGES AND ALLOCATION REQUESTS IN HIGH VOLUME DATA APPLICATIONS |
CN109343855B (zh) * | 2018-09-29 | 2020-12-29 | 清华大学 | 基于指令伪装的程序编译抓取系统及方法 |
JP7225900B2 (ja) * | 2019-02-25 | 2023-02-21 | 富士通株式会社 | コンパイラ装置、プログラム、及び情報処理方法 |
US11200061B2 (en) * | 2019-11-19 | 2021-12-14 | Microsoft Technology Licensing, Llc | Pre-instruction scheduling rematerialization for register pressure reduction |
US12099823B2 (en) * | 2023-01-16 | 2024-09-24 | International Business Machines Corporation | Reducing register pressure |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613121A (en) * | 1994-10-19 | 1997-03-18 | International Business Machines Corporation | Method and system of generating combined storage references |
US5664193A (en) * | 1995-11-17 | 1997-09-02 | Sun Microsystems, Inc. | Method and apparatus for automatic selection of the load latency to be used in modulo scheduling in an optimizing compiler |
US6128775A (en) * | 1998-06-16 | 2000-10-03 | Silicon Graphics, Incorporated | Method, system, and computer program product for performing register promotion via load and store placement optimization within an optimizing compiler |
US7010785B2 (en) * | 2001-03-23 | 2006-03-07 | International Business Machines Corporation | Eliminating cold register store/restores within hot function prolog/epilogs |
-
2003
- 2003-09-02 JP JP2003309675A patent/JP4039633B2/ja not_active Expired - Fee Related
-
2004
- 2004-08-30 US US10/929,950 patent/US20050050533A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2005078474A (ja) | 2005-03-24 |
US20050050533A1 (en) | 2005-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3220055B2 (ja) | 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。 | |
US8104026B2 (en) | Compiler register allocation and compilation | |
TWI574202B (zh) | 用於新應用程式之記憶體管理模型與介面 | |
US8671399B2 (en) | Systems and methods for efficiently using stack registers and storage medium therefor | |
CN103366338B (zh) | 图像处理装置和图像处理方法 | |
KR102356705B1 (ko) | 커널 퓨징, 리사이징 및 인터리빙 자동 연산 방법 | |
JP4621786B2 (ja) | 情報処理装置、並列処理最適化方法およびプログラム | |
US20140006751A1 (en) | Source Code Level Multistage Scheduling Approach for Software Development and Testing for Multi-Processor Environments | |
US20100070958A1 (en) | Program parallelizing method and program parallelizing apparatus | |
US20140007044A1 (en) | Source Code Generator for Software Development and Testing for Multi-Processor Environments | |
US20030237080A1 (en) | System and method for improved register allocation in an optimizing compiler | |
JP2008140046A (ja) | 画像処理装置、画像処理プログラム | |
JP4039633B2 (ja) | 最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 | |
JP4041248B2 (ja) | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 | |
JP2004362216A (ja) | コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体 | |
US20090164773A1 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
CN110442347A (zh) | 安装包编译方法、装置、电子设备及可读存储介质 | |
JP2007188523A (ja) | タスク実行方法およびマルチプロセッサシステム | |
JP4042972B2 (ja) | 最適化コンパイラ、コンパイラプログラム、及び記録媒体 | |
JP5146134B2 (ja) | コンパイル処理装置,ならびにアクセスパターン変更処理方法および処理プログラム | |
US5946493A (en) | Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions | |
US9311065B2 (en) | Data splitting for multi-instantiated objects | |
Kumar et al. | Overflowing emerging neural network inference tasks from the GPU to the CPU on heterogeneous servers | |
JP3638171B2 (ja) | 資源割付装置 | |
JP5525658B2 (ja) | 計算機、リソース使用量計算方法及びリソース使用量計算プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070906 |
|
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: 20071030 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20071101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071102 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101116 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |