JP3032031B2 - ループ最適化方法及び装置 - Google Patents

ループ最適化方法及び装置

Info

Publication number
JP3032031B2
JP3032031B2 JP3071979A JP7197991A JP3032031B2 JP 3032031 B2 JP3032031 B2 JP 3032031B2 JP 3071979 A JP3071979 A JP 3071979A JP 7197991 A JP7197991 A JP 7197991A JP 3032031 B2 JP3032031 B2 JP 3032031B2
Authority
JP
Japan
Prior art keywords
loop
instructions
operations
iteration
unit
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
JP3071979A
Other languages
English (en)
Other versions
JPH04307625A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3071979A priority Critical patent/JP3032031B2/ja
Priority to US07/863,709 priority patent/US5303357A/en
Publication of JPH04307625A publication Critical patent/JPH04307625A/ja
Application granted granted Critical
Publication of JP3032031B2 publication Critical patent/JP3032031B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • G06F8/452Loops

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)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
[発明の目的]
【0001】
【産業上の利用分野】本発明は、複数の命令の列を並列
に実行可能とする電子計算機におけるループ最適化方法
及び装置に関する。
【0002】
【従来の技術】従来、電子計算機の命令列は逐次処理さ
れることを前提に構成され、電子計算機はこれに従って
命令を1個ずつ取り出して実行していた。
【0003】この命令列の処理高速化のため、パイプラ
イン技術が導入された。これは命令の実行を複数の段階
(ステージ)に分解し、この分解された実行段階を単位
として、異なる段階の複数の命令を同時に演算する技術
であり、これにより処理のサイクルタイム短縮が可能と
なり命令列全体の処理時間も短縮された。しかし、パイ
プライン技術においても実行開始される命令は1サイク
ルあたり1個であり、これを超えた命令の並列実行は行
われていなかった。
【0004】これに対し、近年、命令単位で並列実行を
可能とする技術が導入されており、1サイクルあたり1
個以上の命令を処理することが可能になってきている。
VLIW(Very Long Instruction Word) 技術とスーパ
ースカラー技術と呼ばれる2つの手法が代表的なもので
ある。
【0005】VLIW技術は、予め定められた数の複数
命令を1つの実行単位として定義し、計算機はこれら複
数の命令を必ず同時に実行する。計算機は処理対象の複
数命令が同時に実行可能であるか否かを判定する必要が
なく制御が単純であるため、少ないハードウェア量で実
現可能であり、またサイクルタイムの短縮が可能であ
る。しかしながら、処理の並列性はコンパイラまたは人
手により判定し、予め命令の割当を行っておかなければ
ならない。
【0006】一方スーパースカラー技術は、従来と同様
の逐次実行を前提とした命令列を解釈して並列実行可能
性を調べるハードウェアを備え、並列実行可能な場合に
はこれらの複数命令を並列実行するように制御する方式
である。この方式では命令の並列実行可能性判定を専用
ハードウェアに委ねているため、通常のプログラムであ
っても逐次実行時との互換性を保った実行は保証され
る。しかし実際にスーパースカラー方式で性能向上を目
指す場合には、ハードウェアリソースやデータ依存性等
の情報を元に演算ユニットが出来る限り動作状態にある
ようにするため、VLIW方式と同様の命令並べ替えを
行っておくことが必須である。
【0007】これらの並列実行方式において、特にプロ
グラム中のループ部分を高速化するための命令並べ替え
方式としては、ループの反復1回分を固有のハードウェ
アリソースに割り当てて仮想的に複数のループ反復を個
別の処理ユニットを用いてパイプライン的に同時実行す
る「ソフトウェアパイプライニング(Software Pipelini
ng) 」と呼ばれる方式が知られている。
【0008】例えば浮動小数点ユニット1個、メモリ
(ロード、ストア)ユニット1個、整数ユニット1個、
分岐ユニット1個から構成されるVLIW計算機でソフ
トウェアパイプライニング実行することを仮定する。ま
た浮動小数点加算、乗算命令は2サイクルの遅延がある
ものと仮定する。C言語で記述したループ図2(a) を考
える。このループはスカラー変数b,cが既にレジスタ
上にロードされているとすれば、 (1) A[i]のロード (2) A[i]*bの乗算 (3) A[i]*b+cの加算 (4) 結果のストア
【0009】の4段階の処理で1回のループ反復が終了
する。従って従来の逐次計算機における命令列は図2
(b) のようになる。ソフトウェアパイプライニングで
は、この各段階を独立のユニットで処理するので、各ク
ロックでの実行状態は図2(c) のようになる。クロック
7、8がループ実行の定常状態でk回目反復のload, mu
l 、k+2回目反復のadd 、k+3回目反復のstore が
多重化して処理される。このようなソフトウェアパイプ
ライニング処理により、ハードウェアの持つ複数のユニ
ット(加算、乗算、ロード、ストア)を遊ばせることな
く効率の良いループ処理が可能になる。このような命令
並べ替え方式をソースプログラムに手を加えることなく
コンパイラ内部で処理することが、VLIW、スーパー
スカラー方式においては必要となる。
【0010】さて、図2のループの例ではソフトウェア
パイプライニングを適用することで効率の良い命令並べ
替えが実現できたが、それでもプロセッサの持つ最大の
並列化性能が得られるとは限らない。その理由は次の通
りである。
【0011】図2(c) で’ー’で示される部分は演算の
遅延サイクルであるが、一般にVLIW、スーパースカ
ラー方式では各処理ユニットはパイプライン制御される
場合が多いので、実際にはこのサイクルにも別の独立な
演算命令があれば、それを処理ユニットに供給すること
が可能である。もしそのような命令を遅延サイクルに挿
入できればさらに並列化性能を高くできるが、この例で
は適当な演算がない。このように、元のループ自身の処
理内容が単純すぎる場合、命令の空きスロットがあって
もそこに入れられる演算命令がなく最大限の並列性が得
られないことがある。
【0012】例えば、図3(a) のループは、ループ内で
1つの加算しか行わない単純なループである。これに対
応する命令列は図3(b) のようになるが、これに3段の
ソフトウェアパイプライニングを行っても、図3(c) の
ような実行状態しか作れない。この場合は、加算の遅延
サイクル2クロック内にも別の独立な加算演算を供給す
ることが可能であるにもかかわらず、実行対象の命令が
ないために2クロックを無駄に浪費してしまう。従って
このようなループを処理する場合は、ソフトウェアパイ
プライニングをそのまま施してもVLIW、スーパース
カラー計算機の持つ複数の演算ユニットを最大限有効に
利用した並列処理は不可能である。
【0013】このようにソフトウェアパイプライニング
によるループ最適化を行うと、ループ反復1回内の演算
命令数、メモリアクセス命令数、プロセッサの持つ演算
ユニット数などがうまくマッチしている場合については
効率の良い並列実行が可能であるが、一方でループ自身
の持つ演算数が少ないような場合には、プロセッサ内の
演算ユニットに余りが生じてしまい、並列化効果が高く
できなくなってしまうという欠点があった。
【0014】
【発明が解決しようとする課題】このように、従来、V
LIW、スーパースカラー方式用に提案されているソフ
トウェアパイプライニングによるループ最適化方式で
は、プロセッサの持つ演算ユニット数に対しプログラム
のループ自体の持つ演算数が小さい場合にはプロセッサ
の持つ演算ユニットの全てを使用した並列実行が行え
ず、充分な並列処理性能が得られないという問題があっ
た。
【0015】本発明は、このような事情を考慮してなさ
れたものであり、その目的とするところは、プログラム
内の各ループ内部の演算数に依らず充分な並列化性能を
実現できるループ最適化方法及び装置を提供することに
ある。
【0016】
【課題を解決するための手段】本発明に係るループ最適
化方式は、処理対象ループ内の演算数やデータ参照関係
を元にループの展開可能性を判定するループ解析部と、
このループ解析部の結果を元にループ展開処理を行うル
ープ展開部と、展開されたループに対してソフトウェア
パイプライン処理を施すループ最適化部を、具備し、各
ループの演算数、アクセスパターンに応じて前処理を施
したうえでループ部分の最適化を行うことを特徴とする
ものである。
【0017】
【作用】本発明によれば、予めプログラム内の各ループ
部分内の演算数やデータ参照数、データ参照関係から、
従来のソフトウェアパイプライニングをそのまま適用し
てもループ内演算数とプロセッサの演算ユニット数が不
適合で充分な並列化性能が得られない場合を検出して、
このようなループに対しては予めループの反復を展開す
る処理を施すことにより、ループの1反復の演算数を増
加したうえでソフトウェアパイプライニングを行うの
で、従来方式では充分な並列化性能を得られないループ
であっても高い並列化性能を持つようにできる。
【0018】
【実施例】以下、図面に基づいて本発明の一実施例につ
いて説明する。
【0019】図1は本発明の一実施例に係るループ最適
化方式を適用したコンパイラの構成を示す図である。コ
ンパイラは、プログラム入力部21、構文解析部22、
ループ抽出部23、ループ解析部24、ループ展開部2
5、ループ最適化部26、コード生成部27より構成さ
れている。
【0020】プログラム入力部21で読み込まれたソー
スプログラムは構文解析部22で中間テキストに変換さ
れてループ抽出部23に入力される。ループ抽出部23
は入力された中間テキストを調べ、プログラム内のルー
プ部分を検出して取り出し、この内容をループ解析部2
4に渡す。
【0021】ループ解析部24はループ内に現れる演算
命令数、メモリアクセス命令数を調べ、このループを直
接ソフトウェアパイプライニングして充分な性能が得ら
れるかどうかを判定する。この際の判定基準としては、 (1) ループ内の演算命令数が一定個数より小さい場合に
ループ展開する (2) ループ内の演算命令個数のメモリアクセス命令個数
に対する比率が一定値より小さい場合にループ展開する (3) ループ内の演算命令数のプロセッサの持つ演算ユニ
ット個数に対する比率が一定値より小さい場合にループ
展開する などが考えられるが、この判定基準は個々のプロセッサ
の演算命令性能(各演算の遅延が何クロックか)やユニ
ット構成等に応じて自由に設定して構わない。
【0022】またループ解析部24ではループ展開を行
った場合に反復間で逐次実行が必要となるデータ参照関
係がないかどうかも同時に解析する。この解析には、ル
ープ内の左辺、右辺に共通に現れる配列の添字式を調べ
て両者が共通の値を取りうるか否かを調べるデータ依存
解析の手法を使用すればよい。例えば図5に示すループ
はk回目反復の結果をk+1回目で使用するため、ルー
プ反復は本質的に逐次実行である。このようなデータ参
照関係がある場合はループ展開を行っても独立な演算命
令が増加しないので展開は行わず、ループ最適化部26
で直接ソフトウェアパイプライニングするものとする。
以上のような基準に基づいて、ループ解析部24がルー
プを展開すべきであると判定した場合はループ展開部2
5でループ展開が実行される。
【0023】例えば、図3(a) に示すループがループ展
開条件を満足した場合を仮定すると、ループ展開部25
はループ展開を施して図4(a) に等価なループ形式に変
換する。この場合ループ展開段数は2段としているが、
展開段数はプロセッサの構成やコンパイル時間、オブジ
ェクトコードサイズの制約に応じて自由に定めて良い。
ループ展開部25で図4(a) のように変換されたループ
に対する命令列は図4(b) のようになるが、これをルー
プ最適化部26によりソフトウェアパイプライニングす
ると図4(c) のように実行できる。図3(c) と図4(c)
を比較すると、図4ではadd 命令後に別の演算のための
ld/st 命令が入っているので、図3の場合に見られた演
算遅延サイクルでの空きスロットがなくなっている。こ
のように処理すればプロセッサの持つ複数の処理ユニッ
トを有効に使用した並列処理が可能である。このように
してループ最適化された中間テキストはコード生成部2
7により機械語に翻訳されオブジェクトプログラムとし
て出力される。
【0024】
【発明の効果】かくして本発明によれば、予めプログラ
ム内の各ループにおける演算数やデータ参照数、データ
参照関係から、従来のソフトウェアパイプライニングを
そのまま適用してもループ内演算数とプロセッサの演算
ユニット数が不適合で充分な並列化性能が得られない場
合を検出して、このようなループに対しては予めループ
反復を展開する前処理を施すことにより、ループの1反
復内の演算数を増加させて、演算ユニット数と演算数と
の適合性をとったうえでソフトウェアパイプライニング
を行うので、従来方式では充分な並列化性能を得られな
かったループに対しても高い並列化性能を得られ、VL
IW、スーパースカラー方式におけるループ処理の効率
向上を図ることのできるループ最適化方式を実現でき
る。
【図面の簡単な説明】
【図1】 本発明の一実施例に係るループ最適化方式を
適用したコンパイラの構成を示す図。
【図2】 (a) は本発明に係るループ最適化方式の処理
対象となるループを示すソースプログラム、(b) は(a)
のプログラムを従来の逐次計算機の命令列に翻訳したア
センブラプログラム、(c) は(a)にソフトウェアパイプ
ライニングを施した場合の実行状態を示す図。
【図3】 (a) は本発明に係るループ最適化方式の処理
対象となるループを示すソースプログラム、(b) は(a)
のプログラムを従来の逐次計算機の命令列に翻訳したア
センブラプログラム、(c) は(a)にソフトウェアパイプ
ライニングを施した場合の実行状態を示す図。
【図4】 (a) は図3(a) のプログラムに本発明のルー
プ最適化方式によりループ反復を展開する前処理を施し
たループを示すソースプログラム、(b) は(a) のプログ
ラムを従来の逐次計算機の命令列に翻訳したアセンブラ
プログラム、(c)は(a) にソフトウェアパイプライニン
グを施した場合の実行状態を示す図。
【図5】 本発明のループ解析部でループ展開が不適当
であると判定されるループを示すソースプログラム。
【符号の説明】
21 プログラム入力部 22 構文解析部 23 ループ抽出部 24 ループ解析部 25 ループ展開部 26 ループ最適化部 27 コード生成部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/45,9/38

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の命令を同時に実行する電子計算機
    のループ処理において、ループの各反復内の演算数及び
    データ参照関係の有無を調べ、データ参照関係が無く、
    且つ前記ループ内演算数と計算機の持つ演算ユニット数
    の比率が所定の基準値を超える場合に、ループ展開処理
    を行うと判定するプログラム解析手段と、 前記プログラム解析手段でループ展開処理を行なうと判
    定された際、ループ内命令列の任意の複数反復分を1反
    復内に展開した等価な命令列に変換するプログラム手段
    と、 展開されたループに対して異なる反復の演算を別の処理
    ユニットに割り当てて同時に実行するように命令を並び
    替えていく命令再配置手段とを備えたことを特徴とする
    ループ最適化装置。
  2. 【請求項2】 複数の命令を同時に実行する電子計算
    機のループ処理において、ループの各反復内の演算数及
    びデータ参照関係の有無を調べ、データ参照関係が無
    く、且つ前記ループ内演算数と計算機の持つ演算ユニッ
    ト数の比率が所定の基準値を超える場合に、ループ展開
    処理を行うと判定し、 ループ内命令列の任意の複数反復分を1反復内に展開し
    た等価な命令列に変換し、 展開されたループに対して異なる反復の演算を別の処理
    ユニットに割り当てて同時に実行するように命令を並び
    替えていくことを特徴とするループ最適化方法。
JP3071979A 1991-04-05 1991-04-05 ループ最適化方法及び装置 Expired - Fee Related JP3032031B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3071979A JP3032031B2 (ja) 1991-04-05 1991-04-05 ループ最適化方法及び装置
US07/863,709 US5303357A (en) 1991-04-05 1992-04-03 Loop optimization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3071979A JP3032031B2 (ja) 1991-04-05 1991-04-05 ループ最適化方法及び装置

Publications (2)

Publication Number Publication Date
JPH04307625A JPH04307625A (ja) 1992-10-29
JP3032031B2 true JP3032031B2 (ja) 2000-04-10

Family

ID=13476095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3071979A Expired - Fee Related JP3032031B2 (ja) 1991-04-05 1991-04-05 ループ最適化方法及び装置

Country Status (2)

Country Link
US (1) US5303357A (ja)
JP (1) JP3032031B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0353819B1 (en) * 1988-08-02 1997-04-09 Koninklijke Philips Electronics N.V. Method and apparatus for synchronizing parallel processors using a fuzzy barrier
IL98248A0 (en) * 1991-05-23 1992-06-21 Ibm Israel Instruction scheduler for a computer
AU6774894A (en) * 1993-04-26 1994-11-21 Comdisco Systems, Inc. Method for scheduling synchronous data flow graphs
US5524223A (en) * 1994-01-31 1996-06-04 Motorola, Inc. Instruction accelerator for processing loop instructions with address generator using multiple stored increment values
JP2634144B2 (ja) * 1994-07-06 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラムの並列化実行方法及び並列化実行コンパイラ
JP3626784B2 (ja) 1995-03-17 2005-03-09 富士通株式会社 分散メモリ型並列計算機におけるデータ更新方法およびプログラム変換装置
JP3218932B2 (ja) * 1995-07-06 2001-10-15 株式会社日立製作所 データプリフェッチコード生成方法
US6074433A (en) * 1995-08-25 2000-06-13 Fujitsu Limited Optimization control apparatus and optimization control method for array descriptions
US5920724A (en) * 1996-03-28 1999-07-06 Intel Corporation Software pipelining a hyperblock loop
US5826054A (en) * 1996-05-15 1998-10-20 Philips Electronics North America Corporation Compressed Instruction format for use in a VLIW processor
US8583895B2 (en) * 1996-05-15 2013-11-12 Nytell Software LLC Compressed instruction format for use in a VLIW processor
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US6085315A (en) * 1997-09-12 2000-07-04 Siemens Aktiengesellschaft Data processing device with loop pipeline
US6247173B1 (en) 1997-09-24 2001-06-12 Hewlett-Packard Company Computer compiler optimizer for reducing computer resource consumption during dependence analysis after loop unrolling
US6070011A (en) * 1997-10-21 2000-05-30 Hewlett-Packard Co. Compiler for performing a loop fusion, dependent upon loop peeling and/or loop reversal
US6272676B1 (en) * 1998-01-13 2001-08-07 Intel Corporation Method and apparatus for finding loop— lever parallelism in a pointer based application
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
EP0997815A3 (en) * 1998-10-29 2004-05-26 Texas Instruments Incorporated Interactive translation system and method
JP3477137B2 (ja) * 2000-03-03 2003-12-10 松下電器産業株式会社 最適化装置及び最適化プログラムを記録したコンピュータ読み取り可能な記録媒体
US7039906B1 (en) 2000-09-29 2006-05-02 International Business Machines Corporation Compiler for enabling multiple signed independent data elements per register
US6988266B2 (en) * 2001-05-08 2006-01-17 Sun Microsystems, Inc. Method of transforming variable loops into constant loops
US20030171907A1 (en) * 2002-03-06 2003-09-11 Shay Gal-On Methods and Apparatus for Optimizing Applications on Configurable Processors
JP3847672B2 (ja) * 2002-07-03 2006-11-22 松下電器産業株式会社 コンパイラ装置及びコンパイル方法
US7355743B2 (en) * 2002-10-25 2008-04-08 Pitney Bowes Inc. Statement level tracking in a document production and management process
US7210018B2 (en) * 2002-12-30 2007-04-24 International Business Machines Corporation Multiple-stage pipeline for transaction conversion
US7640540B2 (en) * 2003-10-24 2009-12-29 Microsoft Corporation Mechanism for providing extended functionality to command line instructions
US7318223B2 (en) * 2004-08-26 2008-01-08 International Business Machines Corporation Method and apparatus for a generic language interface to apply loop optimization transformations
US20110055303A1 (en) * 2009-09-03 2011-03-03 Azuray Technologies, Inc. Function Generator
JP5975661B2 (ja) 2012-02-03 2016-08-23 株式会社神戸製鋼所 成形加工用アルミニウム板
JP2013171459A (ja) * 2012-02-21 2013-09-02 Toshiba Corp プログラム解析装置、プログラム解析方法および記録媒体
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) * 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
JP6547466B2 (ja) * 2015-07-06 2019-07-24 富士通株式会社 コンパイラ装置、コンパイル方法およびコンパイラプログラム
US10754744B2 (en) * 2016-03-15 2020-08-25 Wisconsin Alumni Research Foundation Method of estimating program speed-up in highly parallel architectures using static analysis
JP2020526811A (ja) * 2017-07-07 2020-08-31 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンスクリプトにおける制御フロー

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642765A (en) * 1985-04-15 1987-02-10 International Business Machines Corporation Optimization of range checking
US4858115A (en) * 1985-07-31 1989-08-15 Unisys Corporation Loop control mechanism for scientific processor
US4782444A (en) * 1985-12-17 1988-11-01 International Business Machine Corporation Compilation using two-colored pebbling register allocation method such that spill code amount is invariant with basic block's textual ordering
JPH0795274B2 (ja) * 1986-09-19 1995-10-11 株式会社日立製作所 配列添字解析方法
US4802091A (en) * 1986-10-31 1989-01-31 International Business Machines Corporation Method for improving the efficiency of arithmetic code generation in an optimizing compiler using the technique of reassociation
US5226128A (en) * 1987-05-01 1993-07-06 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of a loop with a branch
JPH04211830A (ja) * 1990-02-05 1992-08-03 Matsushita Electric Ind Co Ltd 並列化コンパイル方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「情報処理学会第42回(平成3年前期)全国大会講演論文集」(1991−3)P.5−111〜112

Also Published As

Publication number Publication date
JPH04307625A (ja) 1992-10-29
US5303357A (en) 1994-04-12

Similar Documents

Publication Publication Date Title
JP3032031B2 (ja) ループ最適化方法及び装置
JP2947356B2 (ja) 並列処理システム及び並列プロセッサの同期方法
US5966534A (en) Method for compiling high level programming languages into an integrated processor with reconfigurable logic
JP4077252B2 (ja) コンパイラプログラムおよびコンパイル処理方法
US5815719A (en) Method and apparatus for easy insertion of assembler code for optimization
JP2921190B2 (ja) 並列実行方式
JPH09282179A (ja) オーバーヘッド命令を最小限にする最適化コンパイラにおける命令スケジューリングの方法および装置
US20020083423A1 (en) List scheduling algorithm for a cycle-driven instruction scheduler
Labrousse et al. CREATE-LIFE: a modular design approach for high performance ASICs
US5349665A (en) Compiler vectorizing system
JP3032030B2 (ja) ループ最適化方法及び装置
US5568623A (en) Method for rearranging instruction sequence in risc architecture
JP3887097B2 (ja) コンパイル方法,コンパイル装置および、コンパイル用プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP3028821B2 (ja) 並列化コンパイル方法
Gupta code Optimization as a side effect of instruction scheduling
JPH04308937A (ja) コード生成方法
JPH09160784A (ja) 並列化コンパイル方式
JP2002041283A (ja) サブパイプライン変換構造、及びバイナリの互換性を持たせる方法
JP3394353B2 (ja) 機械語命令スケジューリング装置
JPH0659933A (ja) コード変換装置
US5875317A (en) Boosting control method and processor apparatus having boosting control portion
JP3218566B2 (ja) インライン展開処理装置
JPH08115220A (ja) ループ最適化方法
JPH04252336A (ja) プログラム最適化処理装置
JPH09282177A (ja) プログラム変換方法およびコンパイラ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080210

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090210

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100210

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees