JP2007272672A - コンパイル最適化方法およびコンパイラ - Google Patents

コンパイル最適化方法およびコンパイラ Download PDF

Info

Publication number
JP2007272672A
JP2007272672A JP2006099072A JP2006099072A JP2007272672A JP 2007272672 A JP2007272672 A JP 2007272672A JP 2006099072 A JP2006099072 A JP 2006099072A JP 2006099072 A JP2006099072 A JP 2006099072A JP 2007272672 A JP2007272672 A JP 2007272672A
Authority
JP
Japan
Prior art keywords
list
sequence
array
registering
buffer
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.)
Granted
Application number
JP2006099072A
Other languages
English (en)
Other versions
JP4788902B2 (ja
Inventor
Yasuko Tatai
靖子 多田井
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2006099072A priority Critical patent/JP4788902B2/ja
Publication of JP2007272672A publication Critical patent/JP2007272672A/ja
Application granted granted Critical
Publication of JP4788902B2 publication Critical patent/JP4788902B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

【課題】配列データを含む演算を高速に実行できる実行コード(ロードモジュール)を生成できるコンパイラを提供する。
【解決手段】ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイラは、配列参照リスト104と、バッファ割り当てリスト105と、中間コードから配列参照を検出し、検出された配列参照を配列参照情報として配列参照リスト104に登録する配列参照検出部101と、配列参照リストに登録された配列参照情報に基づき、2回以上参照されている配列を抽出してバッファ割り当てリスト105に登録する参照回数解析部102と、バッファ割り当てリスト105に登録された配列に関し、中間コードにおいてその配列へのメモリアクセスをバッファアクセスに変換するメモリアクセス最適化部103と、を有する。
【選択図】図1

Description

本発明は、ソースプログラムから最適化された実行コード(ロードモジュール)を生成するコンパイル最適化方法と、そのような最適化方法を実現するコンパイラとに関する。
ソースプログラムから実行コードあるいはロードモジュールを生成する際に、計算機上での実行速度が高速化された実行コードを生成するための各種の手法が提案されている。
特許文献1(特開2002−325109号公報)には、プログラミング言語Fortran90の形状引継ぎ配列の刻み幅が1のときに、従来の最適化手法が適用できるようにするため、刻み幅が1かどうかを判定する分岐を追加することが、開示されている。
特許文献2(特開平5−197564号公報)には、レジスタに割り当てる変数として、ユーザはプログラム中にある関数の引数やグローバル変数に対して“register”宣言を追加し、このユーザの指定に基づいてコンパイラが変数をレジスタに割り当てることにより、実行性能の高速化を実現することが開示されている。
特許文献3(特開平7−141198号公報)には、ループ内の演算順序を変更することにより、ループの繰り返しにまたがったレジスタの参照を行い、メモリアクセスを削減して高速化する技術が開示されている。ここでは、配列の1つの要素をレジスタに保持し、要素ごとに最適化を行うようにしている。
特許文献4(特開平11−7440号公報)には、実行効率が向上するように積和演算の命令コードを発生することが開示されている。具体的には、乗算とデータ読み出しを並列実行し、累積加算とデータ読み出しとを並列実行するようにする。
特開2002−325109号公報 特開平5−197564号公報 特開平7−141198号公報 特開平11−7440号公報
計算機が実際に演算を実行する場合、メモリにアクセスするよりもレジスタにアクセスする方がはるかに速く実行できるので、データはできるだけレジスタに保持するように、実行コードの最適化が行われている。しかしながら、レジスタに格納できるデータ量は限られているので、従来は、限られた変数のみがレジスタに割り当てられており、配列データはメモリに割り当てられるのが一般的である。すなわち、配列データはデータ量が多いので、レジスタには格納しきれない場合には、配列の全体をメモリ上に配置するようにしている。このため、配列データに対する演算を含む実行コードについては、実行性能が低下する、という問題点が生じる。
また、最近の計算機アーキテクチャでは、レジスタとメモリとの間に、データを一時的に格納するバッファ領域が設けられることが多い。このバッファ領域は、複数の要素情報を保持できるものであり、バッファ領域へのアクセスは、レジスタに対するアクセスよりも時間がかかるものの、典型的には、外付けのDRAM(ダイナミック・ランダム・アクセス・メモリ)集積回路で構成されるメモリに対するアクセスよりは、十分に速く行えるようになっている。しかしながら、従来のコンパイラでは、このようなバッファ領域へアクセスするためのコードの生成を制御していない。
本発明の目的は、配列データを含む演算を高速に実行できる実行コード(ロードモジュール)を生成できるコンパイル最適化方法およびコンパイラを提供することにある。
本発明のコンパイル最適化方法は、ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイル最適化方法であって、中間コードから配列参照を検出する段階と、検出された配列参照を配列参照情報として第1のリストに登録する段階と、第1のリストに登録された配列参照情報に基づき、配列に対する参照が特定の条件を満たしている配列を抽出して第2のリストに登録する段階と、第2のリストに登録された配列に関し、中間コードにおいてその配列へのメモリアクセスをバッファアクセスに変換する段階と、を有する。
本発明のコンパイル最適化方法において、第2のリストに登録する段階は、例えば、第1のリストに登録された配列参照情報に基づき、2回以上参照されている配列を抽出して第2のリストに登録する段階である。あるいは、第2のリストに登録する段階は、例えば、第1のリストに登録された配列参照情報に基づき、その配列の定義の直後にその配列が参照されているような配列を抽出して第2のリストに登録する段階である。
本発明の第1のコンパイラは、ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイラであって、配列参照リストと、バッファ割り当てリストと、中間コードから配列参照を検出し、検出された配列参照を配列参照情報として配列参照リストに登録する配列参照検出手段と、配列参照リストに登録された配列参照情報に基づき、2回以上参照されている配列を抽出してバッファ割り当てリストに登録する参照回数解析手段と、バッファ割り当てリストに登録された配列に関し、中間コードにおいてその配列へのメモリアクセスをバッファアクセスに変換するメモリアクセス最適化手段と、を有する。
本発明の第2のコンパイラは、ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイラであって、配列参照リストと、定義参照リストと、中間コードから配列参照を検出し、検出された配列参照を配列参照情報として配列参照リストに登録する配列参照検出手段と、配列参照リストに登録された配列参照情報に基づき、その配列の定義の直後にその配列が参照されているような配列を抽出して定義参照リストに登録する定義参照解析手段と、定義参照リストに登録された配列に関し、中間コードにおいてその配列へのメモリアクセスをバッファアクセスに変換するメモリアクセス最適化手段と、を有する。
本発明は、複数の要素情報を保持することが可能なバッファ領域を有するシステムに対する実行コードを生成する際に、配列データをバッファ領域に割り当て、配列データのメモリアクセスをバッファアクセスに変換するので、メモリアクセス回数を削減でき、バッファアクセスの方がメモリアクセスよりも高速に行えることから、実行性能を大幅に向上させることができる、という効果がある。
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
図1は本発明の第1の実施形態のコンパイラの論理的な構成を示すブロック図である。
第1の実施形態のコンパイラは、複数の要素情報を保持することが可能なバッファ領域を有するシステムに対応した実行コード(ロードモジュール)を生成するものである。このコンパイラは、ソースプログラムから中間コードを生成する中間コード生成部1と、生成した中間コードに対して最適化を行う最適化部2と、最適化された中間コードに基づいて実行コード(ロードモジュール)を生成するコード生成部3と、を備えている。最適化部2は、配列参照検出部101と、参照回数解析部102と、メモリアクセス最適化部103と、配列参照リスト104と、バッファ割り当てリスト105とを備えている。ここで、配列参照検出部101は、中間コード生成部1において生成された中間コード内にある配列参照を検出し、参照情報を配列参照リスト104に登録するものである。参照回数解析部102は、配列参照リスト104内に登録された配列の中から、参照回数が2回以上のものをバッファ割り当てリスト105に登録するものである。メモリアクセス最適化部103は、中間コードにおいて、バッファ割り当てリスト105に登録されている配列のメモリアクセスをバッファアクセスに変換し、変換後の中間コードを出力するものである。
次に、第1の実施形態の動作を説明する。図2は、第1の実施形態での最適化部2の処理を示すフローチャートであり、図3〜図5は、ソースプログラムからどのように最適化されたコードが生成するかの実例を説明する図である。
中間コード生成部1がソースプログラムから中間コードを生成すると、配列参照検出部101は、ステップA1において、中間コード内にある配列参照を検索し、ステップA2において、配列参照があるかどうかを判定する。配列参照がなければ、次の中間コードにおいて同様の処理を行うためにステップA2に戻り、配列参照があれば、ステップA3において、その配列参照情報を配列参照リスト104に登録する。その後、ステップA4において、プログラム(中間コード)の最後まで到達したかを判定し、最後まで到達していない場合には、次の中間コードにおいて同様の処理を行うためにステップA2に戻る。
ステップA4において、プログラムの最後に達したと判定したときは、次に、参照回数解析部102は、ステップA5において配列参照リスト104を検索し、ステップA6において、検索された配列参照情報において配列の参照回数が2回以上であるかどうかを判定する。参照回数が2回以上でなければ次の配列参照情報について調べるためにステップA6に戻り、参照回数が2回以上であれば、参照回数解析部102は、ステップA7において、その配列参照情報に対応する配列をバッファ割り当てリスト105に登録する。その後、ステップA8において、配列参照リスト104の最後まで到達したかを判定し、最後まで到達していない場合には、次の配列において同様の処理を行うためにステップA6に戻る。
ステップA8において、配列参照リスト104の最後に達したと判定したときは、次に、メモリアクセス最適化部103は、ステップA9において、参照回数解析部102が既にバッファ割り当てリスト105に登録した配列を検索し、ステップA10において、未変換のものがあるかどうかを判定し、未変換のものが残っていなければ処理を終了し、未変換のものが残っていれば、ステップA11において、その配列に対するメモリアクセスをバッファアクセスに変換する。
このようにして最適化部2は、配列に対するメモリアクセスをバッファアクセスに変換した中間コードを生成する。その後、コード生成部3は、この最適化された中間コードを実行コード(ロードモジュール)に変換する。
図3は、プログラミング言語Fortranによるプログラムの一例を示している。このプログラムに対して上述した処理を実行したとすると、ステップA1〜A4において、プログラム中の(1),(2),(3)の行で参照されている配列xと配列yが検出され、配列参照リスト104に登録される。次に、ステップA5〜A8において、参照回数が2回以上である配列xがバッファ割り当てリスト105に登録される。その結果、ステップA9〜A11では、配列xへのメモリアクセスがバッファアクセスに変換される。
従来のコンパイラでは、図3のプログラムからは、図4に示すようなコードが生成され、ここで(11),(22),(33)の行では、メモリアクセスが生成されている。これに対して本実施形態によれば、使用可能なバッファの数を“max”、配列xが必要とするバッファの数は“cnt”とすると、図5に示すように、“max”が“cnt”より大きいときときは、(*)の部分が実行され、“max”が“cnt”以下のときは、(**)の部分が実行されるようなコードが生成する。
このように本実施形態では、配列データに対するメモリアクセスをより高速なバッファアクセスに変換しているので、実行性能を向上させることができる。
図6は本発明の第2の実施形態のコンパイラの論理的な構成を示すブロック図である。
第2の実施形態のコンパイラは、複数の要素情報を保持することが可能なバッファ領域を有するシステムに対応した実行コード(ロードモジュール)を生成するものであり、第1の実施形態とは最適化部2の内部構成が異なっている。すなわち第2の実施形態では、最適化部2は、配列参照検出部201と、定義参照解析部202と、メモリアクセス最適化部203と、配列参照リスト204と、定義参照リスト205とを備えている。ここで、配列参照検出部201は、中間コード生成部1において生成された中間コード内にある配列参照を検出し、参照情報を配列参照リスト204に登録するものである。定義参照解析部202は、配列参照検出部201が生成した配列参照リスト204内の配列参照の定義位置8を解析し、定義の直後に参照があるものを定義参照リスト205に登録するものである。メモリアクセス最適化部203は、中間コードにおいて、定義参照リスト205に登録されている配列のメモリアクセスをバッファアクセスに変換し、変換後の中間コードを出力するものである。
次に、第2の実施形態の動作を説明する。図7は、第1の実施形態での最適化部2の処理を示すフローチャートであり、図8〜図10は、ソースプログラムからどのように最適化されたコードが生成するかの実例を説明する図である。
中間コード生成部1がソースプログラムから中間コードを生成すると、配列参照検出部201は、ステップB1において、中間コード内にある配列参照を検索し、ステップB2において、配列参照があるかどうかを判定する。配列参照がなければ、次の中間コードにおいて同様の処理を行うためにステップB2に戻り、配列参照があれば、ステップB3において、その配列参照情報を配列参照リスト204に登録する。その後、ステップB4において、プログラム(中間コード)の最後まで到達したかを判定し、最後まで到達していない場合には、次の中間コードにおいて同様の処理を行うためにステップB2に戻る。
ステップB4において、プログラムの最後に達したと判定したときは、次に、定義参照解析部202は、ステップB5において配列参照リスト204を検索し、ステップB6において、配列参照情報を参照し、配列の定義の直後にその配列に対する参照があるかどうかを判定する。定義の直後に参照がない場合には、次の配列参照情報について調べるためにステップB6に戻り、定義の直後に参照がある場合には、定義参照解析部202は、ステップB7において、その配列を定義参照リスト205に登録する。その後、ステップB8において、配列参照リスト204の最後まで到達したかを判定し、最後まで到達していない場合には、次の配列において同様の処理を行うためにステップB6に戻る。
ステップB8において、配列参照リスト204の最後に達したと判定したときは、次に、メモリアクセス最適化部203は、ステップB9において、定義参照解析部202が既に定義参照リスト205に登録した配列を検索し、ステップB10において、未変換のものがあるかどうかを判定し、未変換のものが残っていなければ処理を終了し、未変換のものが残っていれば、ステップB11において、その配列に対するメモリアクセスをバッファアクセスに変換する。
このようにして最適化部2は、配列に対するメモリアクセスをバッファアクセスに変換した中間コードを生成する。その後、コード生成部3は、この最適化された中間コードを実行コード(ロードモジュール)に変換する。
図8は、プログラミング言語Fortranによるプログラムの一例を示している。このプログラムに対して上述した処理を実行したとすると、ステップB1〜B4において、プログラム中の(1),(2)の行で参照されている配列xと配列aが検出され、配列参照リスト204に登録される。次に、ステップB5〜B8において、配列xが定義参照リスト205に登録される。その結果、ステップB9〜B11では、配列xへのメモリアクセスがバッファアクセスに変換される。
従来のコンパイラでは、図8のプログラムからは、図9に示すようなコードが生成され、ここで(11),(22)の行では、メモリアクセスが生成されている。これに対して本実施形態によれば、使用可能なバッファの数を“max”、配列xが必要とするバッファの数は“cnt”とすると、図5に示すように、“max”が“cnt”より大きいときときは、(*)の部分が実行され、“max”が“cnt”以下のときは、(**)の部分が実行されるようなコードが生成する。
このように本実施形態では、配列データに対するメモリアクセスをより高速なバッファアクセスに変換しているので、実行性能を向上させることができる。
以上本発明の好ましい実施形態を説明したが、本発明は、プログラムを翻訳して実行コードやロードモジュールを生成するコンパイラといった用途に適用できる。上述では、プログラミング言語Fortranによるプログラムを用いて説明しているが、Fortran以外のC、C++、JAVA(登録商標)言語などのコンパイラにも本発明は適用できる。
上述した本発明のコンパイル最適化方法は、それを実現するための計算機プログラムを、パーソナルコンピュータやワークステーションなどの計算機に読み込ませ、そのプログラムを実行させることによっても実現できる。コンパイル最適化方法を行うためのプログラム(コンパイラプログラム)は、磁気テープやCD−ROMなどの記録媒体によって、あるいはネットワークを介して、計算機に読み込まれる。このような計算機は、一般に、中央処理装置(CPU)と、コンパイラプログラムやデータを格納するためのハードディスク装置と、主メモリと、キーボードやマウスなどの入力装置と、CRTなどの表示装置と、磁気テープやCD−ROM等の記録媒体を読み取る読み取り装置と、ネットワークに接続するための通信インタフェースと、から構成されている。この計算機では、コンパイラプログラムを格納した記録媒体を読み取り装置に装着し記録媒体からコンパイラプログラムを読み出してハードディスク装置に格納し、ハードディスク装置に格納されたプログラムを中央処理装置が実行することにより、あるいは、ネットワークを介してコンパイラプログラムをハードディスク装置にダウンロードし、ハードディスク装置に格納されたプログラムを中央処理装置が実行することにより、上述したコンパイル最適化方法が実行される。
本発明の第1の実施形態のコンパイラの構成を示すブロック図である。 第1の実施形態のコンパイラの動作を示すフローチャートである。 プログラムの一例を示す図である。 図3に示すプログラムから従来の手法で生成したコードのイメージを示す図である。 図3に示すプログラムから第1の実施形態の手法で生成したコードのイメージを示す図である。 本発明の第2の実施形態のコンパイラの構成を示すブロック図である。 第2の実施形態のコンパイラの動作を示すフローチャートである。 プログラムの一例を示す図である。 図8に示すプログラムから従来の手法で生成したコードのイメージを示す図である。 図8に示すプログラムから第2の実施形態の手法で生成したコードのイメージを示す図である。
符号の説明
1 中間コード生成部
2 最適化部
3 コード生成部
101,201 配列参照生成部
102 参照回数解析部
103,203 メモリアクセス最適化部
104,204 配列参照リスト
105 バッファ割り当てリスト
202 定義参照解析部
205 定義参照リスト

Claims (6)

  1. ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイル最適化方法であって、
    中間コードから配列参照を検出する段階と、
    検出された配列参照を配列参照情報として第1のリストに登録する段階と、
    前記第1のリストに登録された配列参照情報に基づき、配列に対する参照が特定の条件を満たしている配列を抽出して第2のリストに登録する段階と、
    前記第2のリストに登録された配列に関し、前記中間コードにおいて当該配列へのメモリアクセスをバッファアクセスに変換する段階と、
    を有する、コンパイル最適化方法。
  2. 前記第2のリストに登録する段階は、前記第1のリストに登録された配列参照情報に基づき、2回以上参照されている配列を抽出して前記第2のリストに登録する段階である、請求項1に記載のコンパイル最適化方法。
  3. 前記第2のリストに登録する段階は、前記第1のリストに登録された配列参照情報に基づき、当該配列の定義の直後に当該配列が参照されているような配列を抽出して前記第2のリストに登録する段階である、請求項1に記載のコンパイル最適化方法。
  4. ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイラであって、
    配列参照リストと、
    バッファ割り当てリストと、
    中間コードから配列参照を検出し、検出された配列参照を配列参照情報として前記配列参照リストに登録する配列参照検出手段と、
    前記配列参照リストに登録された配列参照情報に基づき、2回以上参照されている配列を抽出して前記バッファ割り当てリストに登録する参照回数解析手段と、
    前記バッファ割り当てリストに登録された配列に関し、前記中間コードにおいて当該配列へのメモリアクセスをバッファアクセスに変換するメモリアクセス最適化手段と、
    を有するコンパイラ。
  5. ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成するコンパイラであって、
    配列参照リストと、
    定義参照リストと、
    中間コードから配列参照を検出し、検出された配列参照を配列参照情報として前記配列参照リストに登録する配列参照検出手段と、
    前記配列参照リストに登録された配列参照情報に基づき、配列の定義の直後に当該配列が参照されているような配列を抽出して定義参照リストに登録する定義参照解析手段と、
    前記定義参照リストに登録された配列に関し、前記中間コードにおいて当該配列へのメモリアクセスをバッファアクセスに変換するメモリアクセス最適化手段と、
    を有するコンパイラ。
  6. コンピュータに、ソースプログラムから、複数の要素情報を保持することが可能なバッファ領域を持つシステムに適合した実行コードを生成させる処理を実行させるプログラムであって、
    中間コードから配列参照を検出する処理と、
    検出された配列参照を配列参照情報として第1のリストに登録する処理と、
    前記第1のリストに登録された配列参照情報に基づき、配列に対する参照が特定の条件を満たしている配列を抽出して第2のリストに登録する処理と、
    前記第2のリストに登録された配列に関し、前記中間コードにおいて当該配列へのメモリアクセスをバッファアクセスに変換する処理と、
    を前記コンピュータに実行させるプログラム。
JP2006099072A 2006-03-31 2006-03-31 コンパイル最適化方法およびコンパイラ Expired - Fee Related JP4788902B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006099072A JP4788902B2 (ja) 2006-03-31 2006-03-31 コンパイル最適化方法およびコンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006099072A JP4788902B2 (ja) 2006-03-31 2006-03-31 コンパイル最適化方法およびコンパイラ

Publications (2)

Publication Number Publication Date
JP2007272672A true JP2007272672A (ja) 2007-10-18
JP4788902B2 JP4788902B2 (ja) 2011-10-05

Family

ID=38675400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006099072A Expired - Fee Related JP4788902B2 (ja) 2006-03-31 2006-03-31 コンパイル最適化方法およびコンパイラ

Country Status (1)

Country Link
JP (1) JP4788902B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011154523A (ja) * 2010-01-27 2011-08-11 Nec Corp コンパイル方法、コンパイラおよびベクトル計算機

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6481035A (en) * 1987-09-22 1989-03-27 Nec Corp C compiler
JPH03119472A (ja) * 1989-10-03 1991-05-21 Nec Corp ベクトルレジスタ割付け方式
JPH07105013A (ja) * 1993-10-01 1995-04-21 Nec Corp レジスタ割り付け方式
JPH07141198A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd コンパイル最適化方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6481035A (en) * 1987-09-22 1989-03-27 Nec Corp C compiler
JPH03119472A (ja) * 1989-10-03 1991-05-21 Nec Corp ベクトルレジスタ割付け方式
JPH07105013A (ja) * 1993-10-01 1995-04-21 Nec Corp レジスタ割り付け方式
JPH07141198A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd コンパイル最適化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011154523A (ja) * 2010-01-27 2011-08-11 Nec Corp コンパイル方法、コンパイラおよびベクトル計算機

Also Published As

Publication number Publication date
JP4788902B2 (ja) 2011-10-05

Similar Documents

Publication Publication Date Title
JP5848778B2 (ja) Fsmを実装するための専用要素の利用
JP2002149416A (ja) プログラムの最適化方法及びこれを用いたコンパイラ
US20130139137A1 (en) Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies
US20040019770A1 (en) Optimization apparatus, compiler program, optimization method and recording medium
JP4806060B2 (ja) コンパイラ・プログラム、コンパイル方法及びコンピュータ・システム
JP2001167060A (ja) タスク並列化方法
JP5966509B2 (ja) プログラム、コード生成方法および情報処理装置
JP2010079894A (ja) トレース操作の修正によるトレースのオーバーヘッドの削減
US8266416B2 (en) Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system
US8291397B2 (en) Compiler optimized function variants for use when return codes are ignored
JP6666554B2 (ja) 情報処理装置、変換プログラム、及び変換方法
Barnes et al. Vacuum packing: Extracting hardware-detected program phases for post-link optimization
JP2006196002A (ja) 非同期プログラムフローのモデリングを含むソフトウェアツール
JP5233355B2 (ja) プロパティ生成システムおよびプロパティ検証システム
JP4788902B2 (ja) コンパイル最適化方法およびコンパイラ
JP5278538B2 (ja) コンパイルシステム、コンパイル方法およびコンパイルプログラム
JP2018124877A (ja) コード生成装置、コード生成方法、およびコード生成プログラム
JP2004287844A (ja) コンパイラ装置、コンパイラプログラム、記録媒体、及びコンパイル方法
US9141414B2 (en) Preferred compilation
JP7026563B2 (ja) 高位合成方法、高位合成プログラム、高位合成装置
JP2004265279A (ja) コンパイラ装置、コンパイル方法、コンパイラプログラム、及び記録媒体
JP3927510B2 (ja) コンパイラ装置、コンパイラプログラム、記録媒体、及びコンパイル方法
JP2009181558A (ja) プログラム変換装置
US20220405110A1 (en) Non-transitory computer-readable recording medium and compilation method
JP5233354B2 (ja) プロパティ検証システム、プロパティ検証方法、及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

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: 20110622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4788902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees