JP3734658B2 - コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents

コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体 Download PDF

Info

Publication number
JP3734658B2
JP3734658B2 JP37183599A JP37183599A JP3734658B2 JP 3734658 B2 JP3734658 B2 JP 3734658B2 JP 37183599 A JP37183599 A JP 37183599A JP 37183599 A JP37183599 A JP 37183599A JP 3734658 B2 JP3734658 B2 JP 3734658B2
Authority
JP
Japan
Prior art keywords
loop
instruction
source program
memory
statement
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
Application number
JP37183599A
Other languages
English (en)
Other versions
JP2001184342A (ja
Inventor
延佳 山地
弘明 佐藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP37183599A priority Critical patent/JP3734658B2/ja
Publication of JP2001184342A publication Critical patent/JP2001184342A/ja
Application granted granted Critical
Publication of JP3734658B2 publication Critical patent/JP3734658B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ソースプログラムをベクトル化する際にグローバル化を行うコンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体に関するものである。
【0002】
【従来の技術】
従来、ベクトル計算機では、メモリ(主記憶)上のデータをベクトルレジスタ上に移動し、ベクトルレジスタ上でベクトル演算を行うことで高速化を実現している。メモリ上のデータをベクトルレジスタ上に移動させる命令、あるいはベクトルレジスタ上のデータをメモリ上に移動させる命令をメモリアクセス命令という。メモリアクセス命令は、以下の2つの欠点がある。
【0003】
(1) メモリアクセス命令は、当該命令の立ち上がり時間が遅いために、演算実行するまでに待ち時間が発生してしまう。
(2) メモリアクセス命令の立ち上がりを含めた実行時間が他の演算命令に比べると遅い(平均4〜5倍遅い)欠点がある。
【0004】
例えばソースプログラム
Figure 0003734658
は、ベクトル命令では図7の(a)の下記のように書き替えることができる。
【0005】
vlvl n /nはベクトル長
vload vr1, a /▲1▼
vload vr2, b /▲2▼
vadd vr3, vr1, vr2 /▲3▼
vstore a, vr3 /▲4▼
vrはベクトルレジスタを表す。
このときの▲1▼から▲4▼をイメージ的に表すと図7の(b)に示すようになり、▲3▼のベクトル命令演算に比して、▲1▼、▲2▼、▲4▼のメモリアクセス命令の実行時間が非常に遅い(平均4〜5倍遅い)。
【0006】
このため、ベクトルレジスタのグローバル化、即ち、領域が不変のベクトルデータ(ループが実行されても配列要素内の値が変化しないベクトルデータ)をループの外側に移動して恒久的なレジスタを割り付ける手法がある。このベクトルレジスタのグローバル化を行うことで、主記憶上からの参照、定義の回数を減らし(メモリアクセス命令の実行回数を減らし)、実行効率を向上させることができる。例えば下記のソースプログラム(1)は、下記の(2)、(3)のようにグローバル化を行い、実行効率を向上させることができる。
【0007】
Figure 0003734658
【0008】
【発明が解決しようとする課題】
しかしながら、従来の上述したベクトルレジスタのグローバル化は、多重ループにおいて、最内ループが1つでベクトル化された場合(ベクトル長が変化しない場合)にのみしかベクトルレジスタのグローバル化を行うことができないという問題があった。例えば下記の理由によりベクトル化ができなかった。
【0009】
(イ) 最内ループが複数存在しそれぞれが異なったベクトル長である場合に、それぞれのループのデータの依存関係が不明であり、グローバル化できなかった(例えば後述する図4の(a)のソースプログラム参照)。
【0010】
(ロ) 最内ループ中でIF文により異なったベクトル長となる場合に、グローバル化できなかった(例えば後述する図5の(a)のソースプログラム参照)。
【0011】
(ハ) 最内ループの繰り返し回数の初期値が外側ループの繰り返し回数に依存する場合に、最内ループのベクトル長が一定でなく、グローバル化できなかった(例えば後述する図6の(a)のソースプログラム参照)。
【0012】
本発明は、これらの問題を解決するため、コンパイル時に多重ループのループがベクトル化された場合に、そのループ内のベクトル長が変化などしてもベクトルレジスタのグローバル化を行い、実行効率の向上を図ることを目的としている。
【0013】
【課題を解決するための手段】
図1を参照して課題を解決するための手段を説明する。
図1において、ソースプログラム1は、ベクトル化対象のソースプログラムである。
【0014】
コンパイラ2は、ソースプログラム1を入力とし、最適化などを行い、実行可能形式のオブジェクトプログラム10を生成するものであって、ここでは、ベクトル化手段3および最適化手段4などから構成されるものである。
【0015】
ベクトル化手段3は、ソースプログラムをベクトル化するものである。
最適化手段4は、ソースプログラムをベクトル化した後、最適化を行うものであって、ここでは、最適化実施手段6などから構成されるものである。
【0016】
最適化実施手段6は、ベクトル化されたプログラムを最適化するものであって、ここでは、参照最適化手段7および定義最適化手段8などから構成されるものである。
【0017】
参照最適化手段7は、ベクトル化されたプログラムの参照を最適化(グローバル化)するものである。
定義最適化手段8は、ベクトル化されたプログラムの定義を最適化(グローバル化)するものである。
【0018】
次に、動作を説明する。
ベクトル化手段5がソースプログラム1をベクトル化し、参照最適化手段7がソースプログラム1を解析してループ内に複数のループがあった場合に、当該複数のループについてそれぞれ繰り返し回数をベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータ展開する命令を、ループの前にそれぞれ出力し、定義最適化手段8がループ内に複数のループがあった場合に、複数のループについてそれぞれ繰り返し回数をベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後にそれぞれ出力するようにしている。
【0019】
また、ベクトル化手段5がソースプログラム1をベクトル化し、参照最適化手段7がソースプログラム1を解析してループ内にIF文があると検出された場合に、必要に応じて、IF文の真あるいは偽となる数をベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータ展開する命令を、ループの前に出力し、定義最適化手段8がループ内にIF文が有る場合に、IF文の真あるいは偽となる数をベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後に出力するようにしている。
【0020】
また、ベクトル化手段5がソースプログラム1をベクトル化し、参照最適化手段7がソースプログラムを解析して最内ループの繰り返し回数の初期値が外側ループの繰り返しに依存する場合に、外側ループの繰り返し回数を内側ループの終値とし、かつ先頭を固定したベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータ展開する命令を、ループの前に出力し、定義最適化手段8が依存すると検出された場合に、外側ループの繰り返し回数を内側ループの終値とし、かつ先頭を固定したベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後に出力するようにしている。
【0021】
従って、コンパイル時に多重ループのループがベクトル化された場合にそのループ内でベクトル長が変化などしてもベクトルレジスタのグローバル化を行い、実行効率の向上を図ることが可能となる。
【0022】
【発明の実施の形態】
次に、図1から図6を用いて本発明の実施の形態および動作を順次詳細に説明する。
【0023】
図1は、本発明のシステム構成図を示す。
図1において、ソースプログラム1は、ベクトル化対象のソースプログラムであって、例えば後述する図4の(a)などのソースプログラムである。
【0024】
コンパイラ2は、ソースプログラム1を入力とし、最適化などを行い、実行可能形式のオブジェクトプログラム10を生成するものであって、ここでは、ソースプログラム解析手段3、最適化手段4、コード生成手段9などから構成されるものである。
【0025】
ソースプログラム解析手段3は、ソースプログラム1を形態素解析、構文解析などを行い、中間言を生成するものである。ここで、実際は、形態素解析および構文解析した情報を付加した中間言をもとに以降説明するベクトル化、最適化などを行うが、説明を分かり易くするために、ソースプログラムをベクトル化、最適化などするとして説明を行う。
【0026】
最適化手段4は、ソースプログラムの最適化を行うものであって、ここでは、ベクトル化手段5および最適化実施手段6などから構成されるものである。
ベクトル化手段5は、ソースプログラム1をベクトル化するものであって、例えば後述する図4の(a)のソースプログラム1をベクトル化して図4の(b)に示すプログラムにするものである。
【0027】
最適化実施手段6は、ベクトル化されたプログラムを最適化するものであって、ここでは、参照最適化手段7および定義最適化手段8などから構成されるものである。
【0028】
参照最適化手段7は、ベクトル化されたプログラムの参照を最適化(グローバル化)するものである(図2および図3を用いて後述する)。
定義最適化手段8は、ベクトル化されたプログラムの定義を最適化(グローバル化)するものである(図2および図3を用いて後述する)。
【0029】
コード生成手段9は、最適化後のプログラムから実行可能形式のオブジェクトプログラム10を生成するものである。
オブジェクトプログラム10は、実行可能形式のプログラムである。
【0030】
次に、図2および図3のフローチャートを用いて図1の構成の動作を詳細に説明する。
(1) 図2および図3は、本発明の動作説明フローチャートを示す。
【0031】
図2において、S1は、ソースプログラムの入力を行う。これは、例えば後述する図4の(a)のソースプログラム1を図1のコンパイラ1が読み込む。そして、ソースプログラム1の形態素解析、構文解析などを行う。
【0032】
S2は、多重ループか判別する。これは、S1で入力されたソースプログラム1を形態素解析、構文解析などした情報をもとに、当該ソースプログラム中に多重ループの部分があるか判別する。例えば図4の(a)のソースプログラムのように、多重ループ(do文の多重ループ)があるか判別する。YESの場合には、本願発明の処理である、S3に進む。NOの場合には、終了する。
【0033】
S3は、配列要素の参照/定義が存在して、外側ループの添字に依存しているか判別する。YESの場合には、S13に進む。NOの場合には、S4からS8を実行する。
【0034】
S4は、S3のNOと判別され、例えば後述する図4の(a)のソースプログラム(配列要素の参照/定義が存在して、外側ループの添字に依存していないプログラム)であるので、図4の(b)のようにベクトル化を行うと共に、ループの繰り返し回数をベクトル長として、実行指示する命令を出力する。例えば後述する図4の(c)の参照(▲1▼、▲2▼のそれぞれ上段の1行の命令)の部分を出力する。
【0035】
S5は、メモリ上からグローバルレジスタへデータ展開させる命令を出力する。例えば後述する図4の(c)の参照(▲1▼、▲2▼のそれぞれ下段の1行の命令)の部分を出力する。
【0036】
S6は、ループの繰り返し回数をベクトル長として、実行指示する命令を出力する。例えば後述する図4の(c)の定義(▲1▼''、▲2▼''のそれぞれ上段の1行の命令)の部分を出力する。
【0037】
S7は、グローバルレジスタの内容をメモリ上へ転送させる命令を出力する。例えば後述する図4の(c)の参照(▲1▼''、▲2▼''のそれぞれ下段の1行の命令)の部分を出力する。
【0038】
S8は、終りか判別する。YESの場合には、終了する。NOの場合には、S3に戻り繰り返す。
以上によって、例えば後述する図4の(a)のソースプログラム1について、(b)に示すようにベクトル化を行い、(c)の参照(▲1▼、▲2▼)および定義(▲1▼''、▲2▼'')に示すように、ループの外側にメモリアクセス命令を配置してグローバル化を行い、この例では、メモリアクセス回数を1回に削減((n−1)回分のメモリアクセスを減少)して実行効率を向上させることが可能となった。
【0039】
(2) 図2において、S13は、内側ループの繰り返しが外側ループの繰り返しによって変化するか判別する。YESの場合には、図3のS24に進む。NOの場合には、S14に進む。
【0040】
S14は、IF文の真/偽の回数をベクトル長として、実行指示する命令を出力する。例えば後述する図5の(a)のソースプログラム(内側ループの繰り返しが外側ループの繰り返しによって変化しないソースプログラム)であるので、図5の(b)のようにベクトル化を行うと共に、IF文の真/偽の回数をベクトル長として、実行指示する命令を出力する。例えば後述する図5の(c)の参照(▲3▼の上段の1行の命令)の部分を出力する。
【0041】
S15は、メモリ上からグローバルレジスタへデータ展開させる命令を出力する。例えば後述する図5の(c)の参照(▲3▼の下段の1行の命令)の部分を出力する。
【0042】
S16は、IF文の真/偽の回数をベクトル長として、実行指示する命令を出力する。例えば後述する図5の(c)の参照(▲3▼の上段の1行の命令)の部分を出力する。
【0043】
S17は、グローバルレジスタの内容をメモリ上へ転送させる命令を出力する。例えば後述する図5の(c)の参照(▲3▼''の下段の1行の命令)の部分を出力する。そして、S8で終りか判別し、YESの場合には終了する。NOの場合に、S3に戻り繰り返す。
【0044】
以上によって、例えば後述する図5の(a)のソースプログラム1について、(b)に示すようにベクトル化を行い、(c)の参照(▲3▼)および定義(▲3▼'')に示すように、ループの外側にメモリアクセス命令を配置してグローバル化を行い、この例では、メモリアクセス回数を1回に削減して実行効率を向上させることが可能となった。
【0045】
(3) 図3において、S24は、外側のループの添字を内側ループの終値とした、先頭を固定したループの繰り返し回数をベクトル長として、実行指示する命令を出力する。例えば後述する図6の(c)の参照(▲4▼の1行の命令)の部分を出力する。
【0046】
S25は、メモリ上からグローバルレジスタへデータ展開させる命令を出力する。例えば後述する図6の(c)の参照(▲4▼の下段の1行の命令)の部分を出力する。
【0047】
S26は、ループの繰り返し回数をベクトル長として、実行指示する命令を出力する。例えば後述する図6の(c)の定義(▲4▼''の上段の1行の命令)の部分を出力する。
【0048】
S27は、グローバルレジスタの内容をメモリ上へ転送させる命令を出力する。例えば後述する図6の(c)の参照(▲4▼''の下段の1行の命令)の部分を出力する。そして、S8で終りか判別し、YESの場合には終了する。NOの場合に、S3に戻り繰り返す。
【0049】
以上によって、例えば後述する図6の(a)のソースプログラム1について、(b)に示すようにベクトル化を行い、(c)の参照(▲4▼)および定義(▲4▼'')に示すように、ループの外側にメモリアクセス命令を配置してグローバル化を行い、この例では、メモリアクセス回数を1回に削減して実行効率を向上させることが可能となった。
【0050】
図4は、本発明の説明図(その1)を示す。
図4の(a)は、ソースプログラムの例を示す。ループを矢印で示し、1つのループの内部に2つのループが存在する多重ループの例を示す。
【0051】
図4の(b)は、図4の(a)のソースプログラムをベクトル化した例を示す。
図4の(c)は、図4の(b)のベクトル化した後に、グローバル化(最適化)を行った後の状態を示す。ここでは、グローバル化した結果、参照(▲1▼、▲2▼)の部分および定義(▲1▼''、▲2▼'')の部分を出力する。参照の▲1▼、▲2▼の上段の1行がループの繰り返し回数をベクトル長として実行指示する命令を表し、下段の1行がメモリ上のデータをグローバルレジスタ上に展開する命令を表す。また、定義の▲1▼''、▲2▼''の上段の1行がループの繰り返し回数をベクトル長として実行指示する命令を表し、下段の1行がグローバルレジスタ上のデータをメモリ上に転送する命令を表す。
【0052】
図5は、本発明の説明図(その2)を示す。
図5の(a)は、ソースプログラムの例を示す。ループを矢印で示し、1つのループの内部にループが存在する多重ループの例を示し、ここでは、内部のループにIF文が存在するものである。
【0053】
図5の(b)は、図5の(a)のソースプログラムをベクトル化した例を示す。
図5の(c)は、図5の(b)のベクトル化した後に、グローバル化(最適化)を行った後の状態を示す。ここでは、グローバル化した結果、参照(▲3▼)の部分(無くてもよい)および定義(▲3▼'')の部分を出力する。参照の▲3▼の上段の1行がIF文の真あるいは偽の回数をベクトル長として実行指示する命令を表し、下段の1行がメモリ上のデータをグローバルレジスタ上に展開する命令を表す。また、定義の▲3▼''の上段の1行がIF文の真あるいは偽の回数をベクトル長として実行指示する命令を表し、下段の1行がグローバルレジスタ上のデータをメモリ上に転送する命令を表す。
【0054】
尚、図5の(a),(b),(c)中のなみ線の部分を欄外の矩形で囲んだ3つの文にそれぞれ置換すると、図5の(c)の参照▲3▼の部分が不要となる。
図6は、本発明の説明図(その3)を示す。
【0055】
図6の(a)は、ソースプログラムの例を示す。ループを矢印で示し、1つのループの内部にループが存在する多重ループの例を示す。
図6の(b)は、図6の(a)のソースプログラムをベクトル化した例を示す。
【0056】
図6の(c)は、図6の(b)のベクトル化した後に、グローバル化(最適化)を行った後の状態を示す。ここでは、グローバル化した結果、参照(▲4▼)の部分および定義(▲4▼'')の部分を出力する。参照の▲4▼の上段の1行が外側のループの添字を内側のループの終値とした、先頭を固定したループの繰り返し回数をベクトル長として実行指示する命令を表し、下段の1行がメモリ上のデータをグローバルレジスタ上に展開する命令を表す。また、定義の▲4▼''の上段の1行が外側のループの添字を内側のループの終値とした、先頭を固定したループの繰り返し回数をベクトル長として実行指示する命令を表し、下段の1行がグローバルレジスタ上のデータをメモリ上に転送する命令を表す。
【0057】
【発明の効果】
以上説明したように、本発明によれば、コンパイル時に多重ループのループがベクトル化された場合にそのループ内でベクトル長が変化などしてもベクトルレジスタのグローバル化を行い、実行効率の向上を図ることが可能となる。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャート(その1)である。
【図3】本発明の動作説明フローチャート(その2)である。
【図4】本発明の説明図(その1)である。
【図5】本発明の説明図(その2)である。
【図6】本発明の説明図(その3)である。
【図7】従来技術の説明図である。
【符号の説明】
1:ソースプログラム
2:コンパイラ
3:ソースプログラム解析手段
4:最適化手段
5:ベクトル化手段
6:最適化実施手段
7:参照最適化手段
8:定義最適化手段
9:コード生成手段
10:オブジェクトプログラム

Claims (4)

  1. ソースプログラムをベクトル化する際にグローバル化を行うコンパイラ装置において、
    上記ソースプログラムをベクトル化する手段と、
    上記ソースプログラムを解析してループ内にIF文があるか否かを検出する手段と、
    上記ループ内にIF文が有りと検出された場合に、必要に応じて、当該IF文の真あるいは偽となる数をベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータを展開する命令を、ループの前に出力する手段と、
    上記ループ内にIF文が有りと検出された場合に、当該IF文の真あるいは偽となる数をベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後に出力する手段と
    を備えたことを特徴とするコンパイラ装置。
  2. ソースプログラムをベクトル化する際にグローバル化を行うコンパイラ装置において、
    上記ソースプログラムをベクトル化する手段と、
    上記ソースプログラムを解析して最内ループ内の繰り返し回数の初期値が外側ループの繰り返しに依存するか否かを検出する手段と、
    上記依存すると検出された場合に、外側ループの繰り返し回数を内側ループの終値とし、かつ先頭を固定したベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータを展開する命令を、ループの前にそれぞれ出力する手段と、
    上記依存すると検出された場合に、外側ループの繰り返し回数を内側ループの終値とし、かつ先頭を固定したベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後に出力する手段と
    を備えたことを特徴とするコンパイラ装置。
  3. コンピュータを、
    ソースプログラムをベクトル化する手段、
    上記ソースプログラムを解析してループ内にIF文があるか否かを検出する手段、
    上記ループ内にIF文が有りと検出された場合に、必要に応じて、当該IF文の真あるいは偽となる数をベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータを展開する命令を、ループの前に出力する手段、
    上記ループ内にIF文が有りと検出された場合に、当該IF文の真あるいは偽となる数をベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後に出力する手段
    として機能させるコンパイラプログラムを記録したコンピュータ読取可能な記録媒体。
  4. コンピュータを、
    ソースプログラムをベクトル化する手段と、
    上記ソースプログラムを解析して最内ループ内の繰り返し回数の初期値が外側ループの繰り返しに依存するか否かを検出する手段と、
    上記依存すると検出された場合に、外側ループの繰り返し回数を内側ループの終値とし、かつ先頭を固定したベクトル長として実行指示する命令、およびメモリ上からグローバルレジスタへデータを展開する命令を、ループの前にそれぞれ出力する手段と、
    上記依存すると検出された場合に、外側ループの繰り返し回数を内側ループの終値とし、かつ先頭を固定したベクトル長として実行指示する命令、およびグローバルレジスタの内容をメモリ上へ転送する命令を、ループの後に出力する手段と
    として機能させるコンパイラプログラムを記録したコンピュータ読取可能な記録媒体。
JP37183599A 1999-12-27 1999-12-27 コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体 Expired - Fee Related JP3734658B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP37183599A JP3734658B2 (ja) 1999-12-27 1999-12-27 コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37183599A JP3734658B2 (ja) 1999-12-27 1999-12-27 コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2001184342A JP2001184342A (ja) 2001-07-06
JP3734658B2 true JP3734658B2 (ja) 2006-01-11

Family

ID=18499395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37183599A Expired - Fee Related JP3734658B2 (ja) 1999-12-27 1999-12-27 コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体

Country Status (1)

Country Link
JP (1) JP3734658B2 (ja)

Also Published As

Publication number Publication date
JP2001184342A (ja) 2001-07-06

Similar Documents

Publication Publication Date Title
JP4077252B2 (ja) コンパイラプログラムおよびコンパイル処理方法
JP4339907B2 (ja) マルチプロセッサ向け最適コード生成方法及びコンパイル装置
JP2921190B2 (ja) 並列実行方式
JP3317825B2 (ja) ループ最適化翻訳処理方法
JPH0814817B2 (ja) 自動ベクトル化方法
JPH10228382A (ja) コンパイル方式
JPH05250341A (ja) 並列可能性判定装置、及び並列可能性判定方法、並びにそれを用いたプログラム変換装置
US6993756B2 (en) Optimization apparatus that decreases delays in pipeline processing of loop and computer-readable storage medium storing optimization program
JP3539613B2 (ja) ループ飛び出し文を含むループに対する配列サマリ解析方法
JPH07110800A (ja) 最適化並列コンパイル装置及び最適化並列コンパイル方法
EP1164477A2 (en) A loop optimization method and a compiler
JP3734658B2 (ja) コンパイラ装置およびコンパイラプログラムを記録したコンピュータ読取可能な記録媒体
JP2001125792A (ja) 最適化促進装置
JPH04293150A (ja) コンパイル方法
JP3196625B2 (ja) 並列化コンパイル方式
JP2008015665A (ja) プログラム解析方法及びプログラム解析装置
WO2022130883A1 (ja) コンパイル装置、コンパイル方法、及びコンパイルプログラム記録媒体
JP3817073B2 (ja) メモリアクセス処理装置、メモリアクセス処理システム、および記録媒体
WO2020116025A1 (ja) コンパイル装置、コンパイル方法、及び非一時的なコンピュータ可読媒体
JPH1196018A (ja) コンパイル装置及び方法並びにコンパイル実行プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2870218B2 (ja) 並列実行命令列生成方式
JPH02132525A (ja) コンパイル方法
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JP2003015883A (ja) プロセッサ間通信削減方法と並列化コンパイラ装置並びにプログラム
JP4579425B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041027

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050714

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051019

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091028

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091028

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101028

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101028

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111028

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111028

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121028

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121028

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131028

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees