JP3264901B2 - コンパイル装置及びコンパイル方法 - Google Patents

コンパイル装置及びコンパイル方法

Info

Publication number
JP3264901B2
JP3264901B2 JP08357099A JP8357099A JP3264901B2 JP 3264901 B2 JP3264901 B2 JP 3264901B2 JP 08357099 A JP08357099 A JP 08357099A JP 8357099 A JP8357099 A JP 8357099A JP 3264901 B2 JP3264901 B2 JP 3264901B2
Authority
JP
Japan
Prior art keywords
instruction
register
format
length
resources
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
JP08357099A
Other languages
English (en)
Other versions
JPH11345127A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP08357099A priority Critical patent/JP3264901B2/ja
Publication of JPH11345127A publication Critical patent/JPH11345127A/ja
Application granted granted Critical
Publication of JP3264901B2 publication Critical patent/JP3264901B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、高級プログラミン
グ言語で書かれたソースプログラムを機械語プログラム
に翻訳するコンパイル装置及びコンパイル方法に関す
る。
【0002】
【従来の技術】近年、C言語などの高級プログラミング
言語でプログラムを記述し、プログラムの開発効率を高
めることが盛んに行われている。高級プログラミング言
語を用いることによって、プログラマは、プログラム中
の数値の保持、演算、転送等の処理を、変数を用いた演
算(ステップ)によって、任意に定義し、また、必要な
個数だけ用いることができるため、プログラマは自由に
プログラムを記述することができる。また記述されたプ
ログラム(以下、ソースプログラムと称する)は、コン
パイル装置によってコンパイルされることにより、コン
ピュータが理解可能な機械語プログラムとなる。この機
械語プログラム中の演算は、機械語命令によって表現さ
れ、また、当該機械語命令は、レジスタ又はメモリをオ
ペランドとするので、前記変数には、レジスタ又はメモ
リを割り付ける必要がある。この割り付け処理は、資源
割り付け処理と称される。この資源割り付け処理が最適
であれば、前記機械語プログラムのコードサイズ最小
となる。
【0003】一般的には、各変数に対して、レジスタを
割り付けた場合の方が、メモリを割り付けた場合に比較
して、コードサイズ的にも、実行時間的にも良好な結果
が得られるが、レジスタは使用できる個数が少数である
ため、如何に効率良くレジスタ資源の割り付けを行っ
て、レジスタをオペランドとする機械語命令を使用する
かということが、資源割り付け処理における最適化であ
る。従来の資源割り付けの最適化方式としては、各々の
変数が格納されている値が有効となる区間(変数の生存
区間と称する。)に基づき、同一レジスタに割り付け
れる変数はどれとどれであるかを検査し、その結果を用
いて資源割り付けを行う方式が採用されている。
【0004】一方、本願発明者は、特願平10−596
80において、以下のような2種の命令フォーマット及
びレジスタモデルを使用するデータ処理装置を提案して
いる。図10から図20において、第1の命令フォーマ
ットの概要を示す。
【0005】第1の命令フォーマットは、最小命令語長
を1バイトとした可変長命令であり、レジスタアドレス
指定フィールドとしては、2ビットのフィールドが使用
される。従って、1つのレジスタアドレス指定フィール
ドで4個のレジスタが指定可能である。本アーキテクチ
ャでは、4個のアドレスレジスタと、4個のデータレジ
スタが定義される。命令動作として、アドレスレジスタ
を使用するか、データレジスタを使用するかを区別する
ことにより、命令で前記合計8個のレジスタを使用でき
るように構成される。
【0006】図10は、最小命令語長である1バイト目
の第1の命令フィールドが、オペレーション指定フィー
ルドと、任意の数のレジスタアドレス指定フィールドと
から構成される第1の命令フォーマット(1)のビット
割り付けを示す。
【0007】第1の命令フォーマット(1)-(a)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、最小命令語長である
1バイトで構成される命令フォーマットであり、2つの
オペランドが指定可能な命令フォーマットである。
【0008】第1の命令フォーマット(1)-(b)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、更に付加情報フィー
ルドを追加して、合計2バイト以上の命令語長を持つ命
令フォーマットである。
【0009】第1の命令フォーマット(1)-(c)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1つ含み、最小命令語長である1バイト
で構成される命令フォーマットであり、1つのオペラン
ドが指定可能な命令フォーマットである。
【0010】第1の命令フォーマット(1)-(d)は、第
1の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1フィールド含み、更に付加情報フィー
ルドを追加した2バイト以上の命令語長を持つ命令フォ
ーマットである。
【0011】第1の命令フォーマット(1)-(e)は、第
1の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、最小命令語長である1バイトで構成される
命令フォーマットであり、アドレスを用いたオペランド
指定不可能な命令フォーマットである。
【0012】第1の命令フォーマット(1)-(f)は、第
1の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、更に付加情報フィールドを追加した2バイ
ト以上の命令語長を持つ命令フォーマットである。
【0013】図11は、図10で示された個々のビット
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。
【0014】図12は、最小命令語長である1バイト目
の第1の命令フィールドが命令語長指定フィールドから
なり、第2の命令フィールドが、オペレーション指定フ
ィールドと、任意の数のレジスタアドレス指定フィール
ドとから構成される第1の命令フォーマット(2)のビ
ット割り付けを示したものである。
【0015】第1の命令フォーマット(2)-(a)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、2バイトで構成され
る命令フォーマットであり、2つのオペランドが指定可
能な命令フォーマットである。
【0016】第1の命令フォーマット(2)-(b)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを2フィールド含み、更に付加情報フィー
ルドを追加して、合計3バイト以上の命令語長を持つ命
令フォーマットである。
【0017】第1の命令フォーマット(2)-(c)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1つ含み、2バイトで構成される命令フ
ォーマットであり、1つのオペランドが指定可能な命令
フォーマットである。
【0018】第1の命令フォーマット(2)-(d)は、第
2の命令フィールド内に2ビットのレジスタアドレス指
定フィールドを1フィールド含み、更に付加情報フィー
ルドを追加した3バイト以上の命令語長を持つ命令フォ
ーマットである。
【0019】第1の命令フォーマット(2)-(e)は、第
2の命令フィールド内にレジスタアドレス指定フィール
ドを含まず、2バイトで構成される命令フォーマットで
あり、アドレスを用いたオペランド指定が不可能な命令
フォーマットである。
【0020】第1の命令フォーマット(2)-(f)は、第
2の命令フィールド内にレジスタアドレス指定フィール
ド含まず、更に、付加情報フィールドを追加した2バイ
ト以上の命令語長を持つ命令フォーマットである。
【0021】図13は、図12で示された個々のビット
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。
【0022】従って、前記図10から図13に示した第
1の命令フォーマットは、第1の命令フィールドを基本
命令語長とし、第1から第Mの命令フィールドを最長命
令語長Mとして、N命令語長(Nは1〜M間での整数)
の可変長命令を特定するものであって、最小命令語長が
1バイトであるという他にない特徴を備え、プログラム
サイズの縮小に適した命令フォーマットとなっている。
【0023】図14は、本データ処理装置に備える第1
のレジスタファイル220を示す。この第1のレジスタ
ファイル220は、4個のアドレスレジスタA0〜A3
と、4個のデータレジスタD0〜D3と、スタックポイ
ンタSP223と、内部のステータス情報及び制御情報
を保持するPSW(Processor Status Word)224と、プロ
グラムカウンタPC225とを含む。
【0024】更に、図15は、前記第1のレジスタファ
イル220のアドレスレジスタA0〜A3及びデータレ
ジスタD0〜D3へのアクセスについて、より詳細に示
した図である。同図は、命令の中で指定されるレジスタ
名と、レジスタアドレス指定フィールドで指定される命
令コードでのビット割り付けと、物理的なレジスタにア
クセスするための物理的なレジスタ番号、及びアクセス
する対象となる物理的なレジスタ名を一覧にして示した
ものである。
【0025】図15に示すように、第1の命令フォーマ
ットにおいては、4個のアドレスレジスタA0〜A3へ
アクセスするために命令内に指定される命令アドレス指
定フィールドと、4個のデータレジスタD0〜D3へア
クセスするために命令内に指定される命令アドレス指定
フィールドとは、全く同一である。即ち、レジスタのア
ドレスを指定するために2ビット命令アドレス指定フィ
ールドを使用し、命令動作そのものでアドレスレジスタ
にアクセスするか、データレジスタにアクセスするかを
区別させている。
【0026】次に、本アーキテクチャの基本命令フォー
マットである前記図10及び図12の第1の命令フォー
マットに対して、追加拡張する第2の命令フォーマット
のビット割り付けを図16に示す。
【0027】図16に示した第2の命令フォーマットの
ビット割り付けは、最小命令語長である1バイト目の第
1の命令フィールドが命令語長指定フィールドからな
り、第2及び第3の命令フィールドが、オペレーション
指定フィールドと、任意の数のレジスタアドレス指定フ
ィールドとから構成される。第2の命令フォーマットに
おけるレジスタアドレス指定フィールドは4ビットから
構成される。
【0028】図16において、第2の命令フォーマット
(a)は、第3の命令フィールド内に4ビットのレジス
タアドレス指定フィールドを2フィールド含み、3バイ
トで構成される命令フォーマットであり、2つのオペラ
ンドが指定可能な命令フォーマットである。
【0029】第2の命令フォーマット(b)は、第3の
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを2フィールド含み、更に、付加情報フィール
ドを追加して、合計4バイト以上の命令語長を持つ命令
フォーマットである。
【0030】第2の命令フォーマット(c)は、第3の
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを1つ含み、3バイトで構成される命令フォー
マットであり、1つのオペランドが指定可能な命令フォ
ーマットである。
【0031】第2の命令フォーマット(d)は、第3の
命令フィールド内に4ビットのレジスタアドレス指定フ
ィールドを1フィールド含み、更に、付加情報フィール
ドを追加した4バイト以上の命令語長を持つ命令フォー
マットである。
【0032】従って、前記第2の命令フォーマットも、
第1の命令フィールドを基本命令語長とし、第1から第
Mの命令フィールドを最長命令語長Mとして、N命令語
長(Nは1〜M間での整数)の可変長命令を特定する。
【0033】図17は、図16で示された個々のビット
割り付けについて、具体的な命令のリストの一部を示し
たものである。左側に命令のニーモニックを、右側に命
令の動作を各々示している。ニーモニックの中で、Rm、
Rn、又はRiは、レジスタアドレスの指定を表すが、指定
できるレジスタとして、図18に示されるような第2の
レジスタファイル120が定義され、4個のアドレスレ
ジスタA0〜A3、4個のデータレジスタD0〜D3、
及び8個の拡張レジスタE0〜E7から構成される16
個の汎用レジスタである。更に、この第2のレジスタフ
ァイル120は、スタックポインタSP122と、内部の
ステータス情報及び制御情報を保持するPSW(Processor
Status Word)123と、プログラムカウンタPC124と
を含んでいる。
【0034】図19は、第1の命令フォーマットで定義
された命令を実行する際に、命令の中で指定されるレジ
スタ名と、レジスタアドレス指定フィールドで指定され
る命令コード上でのビット割り付けと、物理的なレジス
タにアクセスするための物理的なレジスタ番号、及び、
アクセスする対象となる物理的なレジスタ名を一覧にし
て示したものである。第1の命令フォーマットでは、レ
ジスタ指定フィールドは2ビットしかないが、汎用レジ
スタは16個で4ビットのアドレスでアクセスする必要
がある関係から、アドレスの変換をする必要がある。例
えば、アドレスレジスタA0をアクセスする際には、物
理的なアドレス番号として“1000”が、データレジ
スタD1をアクセスする際には、物理的なアドレス番号
として、“1101”を生成し、汎用レジスタファイル
121に出力する必要がある。
【0035】図20は、第2の命令フォーマットで定義
された命令を実行する際に、命令の中で指定されるレジ
スタ名と、レジスタアドレス指定フィールドで指定され
る命令コード上でのビット割り付けと、物理的なレジス
タにアクセスするための物理的なレジスタ番号、及び、
アクセスする対象となる物理的なレジスタ名を一覧にし
て示したものである。第2の命令フォーマットでは、4
ビットのレジスタアドレス指定フィールドを有している
ので、その4ビットをそのまま物理的なレジスタ番号と
して指定することになる。
【0036】
【発明が解決しようとする課題】本願発明者が特願平1
0−59680において提案したようなデータ処理装置
においては、従来のコンパイル装置が行っているように
単にレジスタをメモリよりも優先して資源割り付けを行
うと、以下のような問題が存在する。
【0037】1) 第1のレジスタファイル(レジスタ資
源)に割り付けられた変数を第1の命令フォーマットで
記述された命令を使用して処理する場合と、第2のレジ
スタファイルに割り付けられた変数を第2の命令フォー
マットで記述された命令を使用して処理する場合とで命
令長が異なるため、両者の何れをも優先的に扱わず均一
に扱うことでは、命令コードサイズは最小にならない。
即ち、従来のコンパイル装置では、各変数を第1のレジ
スタファイルに優先的に割り付けるか、又は第2のレジ
スタファイルに優先的に割り付けるかについて考慮して
いない。例えば、各変数をその出現順に第2のレジスタ
ファイルに割り付け、これ等変数を第2の命令フォーマ
ットで記述された命令を使用して処理する場合には、第
2の命令フォーマットの命令長が第1の命令フォーマッ
トの命令長よりも長い以上、命令コードサイズは大きく
なる。
【0038】2) 第2の命令フォーマットで記述された
命令を使用して変数を処理する場合に対して、データを
メモリからレジスタに転送するデータ転送命令を含む命
令列では、第1の命令フォーマットを使用して変数を処
理した方が、命令数は増加しても命令長は短くなる場合
がある。従って、単純に、変数をメモリよりもレジスタ
資源に優先的に割り付けることでは、コードサイズは最
小にならない。
【0039】本発明の目的は、命令フォーマットによっ
て扱えるレジスタ資源が異なり、且つ使用する命令フォ
ーマットに応じて命令長が異なる命令セットを有するプ
ロセッサにおいて、命令コードサイズが小さい機械語プ
ログラムを生成するコンパイル装置及びコンパイル方法
を提供することにある。
【0040】
【課題を解決するための手段】前記課題を解決するため
に、本発明では、頻繁に使用される変数が、命令長の短
いフォーマットで使用可能なレジスタに割り付けられ、
且つそれ等変数が前記命令長の短いフォーマットを使用
して処理される機械語プログラムを得るようにする。
【0041】すなわち、請求項1記載の発明のコンパイ
ル装置は、レジスタ資源と拡張レジスタ資源とを備え、
第1の命令フォーマットで記述された命令と、前記第1
の命令フォーマットよりも命令長が長い第2の命令フォ
ーマットで記述された命令とを実行し、前記拡張レジス
タ資源は前記第2の命令フォーマットで記述された命令
でのみアクセスされるプロセッサを対象として、入力さ
れたソースプログラムを機械語に翻訳するコンパイル装
置であって、前記ソースプログラム中の各変数が前記レ
ジスタ資源又は前記拡張レジスタ資源に割り付けられた
場合に、前記第1の命令フォーマットで記述された命令
の命令列の長さを算出する第1の命令列長算出手段と、
前記ソースプログラム中の各変数が前記レジスタ資源又
は前記拡張レジスタ資源に割り付けられた場合に、前記
第2の命令フォーマットで記述された命令の命令列の長
さを算出する第2の命令列長算出手段と、前記ソースプ
ログラム中の各変数を前記レジスタ資源と前記拡張レジ
スタ資源とに割り付ける際に、前記第1の命令列長算出
手段及び前記第2の命令列長算出手段により算出された
命令列長に基づいて、前記ソースプログラム中の変数の
生存区間内の参照頻度の高い変数を優先的に前記レジス
タ資源に割り付ける資源割付手段とを備えたことを特徴
とする。
【0042】請求項2記載の発明は、前記請求項1記載
のコンパイル装置において、前記ソースプログラム中の
各変数がメモリに割り付けられた場合の命令列の長さを
算出する第3の命令列長算出手段を備え、前記資源割付
手段は、前記ソースプログラム中の各変数の中で前記レ
ジスタ資源に割り付けられなかった変数を前記拡張レジ
スタ資源に割り付けるか前記メモリに割り付けるかを、
前記第2の命令列長算出手段及び前記第3の命令列長算
出手段により命令列長を算出して決定することを特徴と
する。
【0043】請求項3記載の発明は、前記請求項1又は
2記載のコンパイル装置において、前記資源割付手段
は、前記レジスタ資源の一部を特定の変数に割り付けな
いワークレジスタとして使用し、前記レジスタ資源と前
記拡張レジスタ資源との双方を用いる操作を、前記第2
の命令フォーマットの命令で記述するか、又は前記ワー
クレジスタを用いた前記第1の命令フォーマットの命令
及び前記ワークレジスタと前記拡張レジスタ資源との間
の第2の命令フォーマットの転送命令との両命令で記述
するかを、前記第1の命令列長算出手段及び前記第2の
命令列長算出手段により命令列長を算出して命令列長が
短くなるように決定することを特徴とする。
【0044】請求項4記載の発明は、前記請求項1、2
又は3記載のコンパイル装置において、前記レジスタ資
源は、前記第1の命令フォーマットで記述された命令及
び前記第2の命令フォーマットで記述された命令の何れ
でもアクセスされ、前記第1の命令フォーマットで記述
された命令では前記レジスタ資源のみが参照されること
を特徴とする。
【0045】請求項5記載の発明のコンパイル方法は、
レジスタ資源と拡張レジスタ資源とを備え、第1の命令
フォーマットで記述された命令と、前記第1の命令フォ
ーマットよりも命令長が長い第2の命令フォーマットで
記述された命令とを実行し、前記拡張レジスタ資源は前
記第2の命令フォーマットで記述された命令でのみアク
セスされるプロセッサを対象として、入力されたソース
プログラムを機械語に翻訳するコンパイル方法であっ
て、前記ソースプログラム中の各変数を前記レジスタ資
源と前記拡張レジスタ資源とに割り付けるに際し、前記
ソースプログラム中の各変数が前記レジスタ資源又は前
記拡張レジスタ資源に割り付けられた場合に、前記第1
の命令フォーマットで記述された命令の命令列の長さを
算出し、前記ソースプログラム中の各変数が前記レジス
タ資源又は前記拡張レジスタ資源に割り付けられた場合
に、前記第2の命令フォーマットで記述された命令の命
令列の長さを算出し、前記算出された第1の命令フォー
マットで記述された命令の命令列長及び前記第2の命令
フォーマットで記述された命令の命令列長に基づいて、
前記ソースプログラム中の変数の生存区間内の参照頻度
の高い変数を優先的に前記レジスタ資源に割り付ける
とを特徴とする。
【0046】請求項6記載の発明は、前記請求項5記載
のコンパイル方法において、前記ソースプログラム中の
各変数の中で前記レジスタ資源に割り付けられなかった
変数を前記拡張レジスタ資源に割り付けるかメモリに割
り付けるかを決定するに際し 、前記レジスタ資源に割り
付けられなかった変数が前記拡張レジスタ資源に割り付
けられた場合に、前記第2の命令フォーマットで記述さ
れた命令の命令列の長さを算出すると共に、前記レジス
タ資源に割り付けられなかった変数が前記メモリに割り
付けられた場合の命令列の長さを算出することを特徴と
する。
【0047】請求項7記載の発明は、請求項5又は6記
載のコンパイル方法において、前記レジスタ資源の一部
を特定の変数に割り付けないワークレジスタとして使用
しながら、前記ソースプログラム中の各変数が前記レジ
スタ資源又は前記拡張レジスタ資源に割り付けられた場
合に、前記第1の命令フォーマットで記述された命令の
命令列の長さを算出すると共に、前記ソースプログラム
中の各変数が前記レジスタ資源又は前記拡張レジスタ資
源に割り付けられた場合に、前記第2の命令フォーマッ
トで記述された命令の命令列の長さを算出し、前記両命
令列長の算出結果により、命令列長が短くなるように、
前記レジスタ資源と前記拡張レジスタ資源との双方を用
いる操作を、前記第2の命令フォーマットの命令で記述
するか、又は前記ワークレジスタを用いた前記第1の命
令フォーマットの命令及び前記ワークレジスタと前記拡
張レジスタ資源との間の第2の命令フォーマットの転送
命令との両命令で記述するかの何れかを決定することを
特徴とする。
【0048】請求項8記載の発明は、請求項5、6又は
7記載のコンパイル方法において、前記レジスタ資源は
前記第1の命令フォーマットで記述された命令及び前記
第2の命令フォーマットで記述された命令の何れでもア
クセスされ、前記第1の命令フォーマットで記述された
命令では前記レジスタ資源のみが参照されるプロセッサ
を対象とするコンパイル方法であることを特徴とする。
【0049】以上の構成から、本発明では、命令フォー
マットの種類に応じて扱えるレジスタ資源が異なり、且
つ命令フォーマットの種類に応じて命令長が異なる命令
セットを有するプロセッサにおいて、各変数を第1の命
令フォーマットで記述された命令を使用して第1のレジ
スタ資源に割り付けた場合の命令列長の長さと、各変数
を第2の命令フォーマットで記述された命令を使用して
第2のレジスタ資源に割り付けた場合の命令列長の長さ
とが算出され、その算出結果に基づいて適切な資源割り
付けが行われるので、コードサイズの小さい機械語プロ
グラムが生成される。
【0050】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図1から図5を用いて説明する。
【0051】最初に本発明におけるコンパイル装置及び
コンパイル方法が対象とするプロセッサの機械語命令セ
ットについてであるが、命令のフォーマットによって扱
えるレジスタ資源が異なり、且つ、命令のフォーマット
に応じて命令長が異なるような機械語命令セットを有す
るプロセッサとして、特願平10−59680において
提案した2種の命令フォーマットを有するデータ処理装
置とする。
【0052】図1は、本発明の実施の形態におけるコン
パイル装置の構成図である。コンパイル装置は、構文解
析手段1と、最適化手段2と、資源割り付け手段3と、
コード生成手段4とで構成されている。
【0053】構文解析手段1は、ファイルとして記憶さ
れているソースプログラム5の字句解析、構文解析、及
び意味解析を行う。解析結果は、中間言語プログラムと
して出力される。
【0054】最適化手段2は、最終的に生成される機械
語プログラム6のプログラムサイズを削減し、実行時間
を短縮させる目的で中間言語プログラムの最適化を行
う。
【0055】資源割り付け手段3は、プログラムの変数
の生存区間を求め、生存区間毎に各変数に対して資源で
あるレジスタやメモリを割り付けると共に、同一動作に
対しての最適な命令の割り付けも行う。
【0056】コード生成手段4は、最適化された中間言
語プログラムを、資源割り付け手段3の割り付け結果に
従って、ターゲットマシンの機械語命令に変換し、機械
語プログラム6として出力する。
【0057】尚、構文解析手段1、最適化手段2、コー
ド生成手段4については公知であるので、詳細な説明を
省略する。
【0058】図2は、本発明の実施の形態におけるコン
パイル装置の資源割り付け手段3の構成図である。同図
において、31は各変数に対しての生存区間を判定する
生存区間判定部である。32は変数を第1の命令フォー
マットを持つ命令群を用いてレジスタに割り付けた場合
の命令列長を算出する第1の命令長算出手段である。第
1の命令フォーマットでは、一部のレジスタしか扱うこ
とができない。33は変数を第2の命令フォーマットを
持つ命令群を用いてレジスタに割り付けた場合の命令長
を算出する第2の命令長算出手段である。第2の命令フ
ォーマットでは全てのレジスタ資源を扱うことができ
る。34は変数をメモリに割り付けた場合の命令長を算
出する第3の命令長算出手段である。35は生存区間判
定部31の生存区間の判定結果と、第1から第3の命令
長算出手段32〜34に応じて、変数資源の割り付けを
行う変数資源割り付け部である。36は資源割り付け手
段3の制御部36を除く全体を制御する制御部である。
【0059】以上のように構成されたコンパイル装置
資源割り付けについて、以下、図面を用いて、その動作
を述べる。図3は、本発明の実施の形態におけるコンパ
イル装置の制御部36の資源割り付けの処理フローを示
したフローチャートである。
【0060】ここで、コンパイル装置の資源割付けを行
う対象とする中間コードプログラム例を図4に示す。図
4に示された中間コードs1〜s8を今回の資源割付け
の対象となる基本ブロックとする。説明を簡単にするた
めに、ここでは、基本ブロック内の資源割り付けについ
て説明するが、基本ブロックを越えての資源割付けにお
いても同様に説明できる。
【0061】また、説明を簡単にするために、レジスタ
資源の割り付けに関しては、以下の条件で行うものとす
る。
【0062】1)第1の命令フォーマットで操作できる
レジスタ資源(A0〜A3,D0〜D3)の中で、アド
レスレジスタA0〜A3については、ポインタとして使
用するものとし、データ変数を格納しないものとする。
【0063】2)第1の命令フォーマットで操作できる
レジスタ資源(A0〜A3,D0〜D3)の中で、デ−
タレジスタD0〜D3は、全てデ−タ変数の格納及び操
作に使用できるが、そのうち、レジスタD0、D1につ
いてはワークレジスタとして使用し、変数を割り付けな
いものとする。
【0064】3)第2の命令フォーマットで操作できる
レジスタ資源(A0〜A3,D0〜D3、E0〜E7)
の中で、拡張レジスタE0〜E7については、データで
もアドレスでも自由に使用できるものとする。
【0065】これ等の条件は、説明を簡単にするために
定めたものであって、本発明に何らの制約を与えるもの
ではない。
【0066】このフローチャートに従って、図4におけ
る中間コードプログラムについて資源割り付けを行う場
合の処理について説明する。
【0067】先ず、ステップ301では、基本ブロック
内部の全ての変数について、個々の変数の生存区間や参
照頻度を調べる。ここで、レジスタ割付けの対象となる
のは、第1の命令フォーマットで操作できるレジスタ資
源のみ、具体的には、レジスタA0〜A3、D0〜D3
のみである。その結果によって、変数資源割付部35が
第1の命令フォーマットで操作できるレジスタ資源に対
して、レジスタ割付け可能かどうかを検査する。ここで
は、どのような手法を用いてこれ等のレジスタに変数を
割り付けるかということが重要ではなく、同一のオペレ
ーションに対して第1の命令フォーマットの命令長の方
が第2の命令フォーマットの命令長に比べて小さいの
で、第1の命令フォーマットで扱えるレジスタ資源のみ
を対象にしたレジスタ資源割り付けを行うということが
最も重要である。
【0068】次に、ステップ302では、ステップ30
1の検査結果をもとに、第1の命令フォーマットで操作
できるレジスタ資源のみで全ての変数が資源割付け可能
かどうかを判断する。
【0069】可能な場合は、第1の命令フォーマットで
操作できるレジスタ資源のみに変数を割り付けて、資源
割付けを終了する(ステップ303)。
【0070】通常の基本ブロック内には、多くの変数が
存在するので、ほとんどの場合は、第1の命令フォーマ
ットで操作できるレジスタ資源に割り付けられない変数
が存在する。ステップ302では、第1の命令フォーマ
ットで操作できるレジスタ資源で全ての変数が割り付け
られない場合、先ず、第1の命令フォーマットで操作で
きるレジスタ資源を優先的に割り付けを行う。この優先
的な割り付け処理を以下に説明する。
【0071】図5は、ステップ301で、第1の命令フ
ォーマットで操作できるレジスタ資源に割り付ける変数
を決定するために調べた、基本ブロック内での変数の生
存区間と、参照頻度とを示した図である。この結果、最
も参照頻度の高い変数であるp1とp2を第1の命令フ
ォーマットで操作できるレジスタの内、レジスタD2と
D3に割り付けるものとする。ここで、どの変数をレジ
スタに割り付けるかどうかの決定は、扱えるレジスタ資
源の数と、各変数の生存区間、参照頻度によって決定さ
れたものである。この場合、既述した条件によりレジス
タD0及びD1は使用できないので、使用できるレジス
タ資源はレジスタD2とD3との2つであり、最も使用
頻度の高い2つの変数を割り付けている。
【0072】次に、ステップ304では、変数資源割付
部35が第1の命令フォーマットで操作できるレジスタ
資源に割り付けできなかった残りの変数について、第1
の命令フォーマットでは操作できず、第2の命令フォー
マットによってのみ操作できるレジスタ資源、具体的に
は、拡張レジスタE0〜E7に各変数を割り付けるか、
メモリ資源に割り付けるかの第1の組み合わせ(資源の
割り付け)について場合分けを行う。
【0073】更に、ステップ304では、制御部36が
第1の組み合わせの中でレジスタ資源に割り付けた場合
には、ワークレジスタD0、D1を利用して、第1の命
令フォーマットを使用するのが適当か、又はワークレジ
スタD0、D1を利用せずに第2の命令フォーマットを
使用するのが適当かも含めて、第2の組み合わせ(命令
の割り付け)を考える。拡張レジスタE0〜E7及びレ
ジスタD2、D3を使用した特定の第1の組み合わせに
対する第2の組み合わせの例を図7〜図9に示す。これ
等の図面の説明は後に詳述する。最終的には、全ての組
み合わせについて、命令列長を算出するので、ここで、
どの組み合わせを選択するかは問題にならない。
【0074】以下に説明するステップ305〜ステップ
307では、前記第2の組み合わせの各々(図7〜図
9)に対して命令列長の算出を行う。
【0075】つまり、ステップ305では、第1の命令
フォーマットを使用してレジスタに資源割り付けした命
令列長を算出する。ステップ306では、第2の命令フ
ォーマットを使用してレジスタに資源割り付けした命令
列長を算出する。
【0076】同様に、ステップ307では、レジスタ資
源ではなく、メモリ資源に変数を割り付け、第1の命令
フォーマットを割り付けた場合の命令列長を算出する。
ここでは、説明を簡単にするために、メモリ資源に変数
を割り付けた場合のアドレスは、16ビットの絶対アド
レスで指定できるものとし、その変数に対してのメモリ
/レジスタ間移動命令は、3バイトとする。またステッ
プ307では、レジスタ資源ではなく、メモリ資源に変
数を割り付け、第2の命令フォーマットを割り付けた場
合の命令列長を算出する。ここでは、説明を簡単にする
ために、メモリ資源に変数を割り付けた場合のアドレス
は、16ビットの絶対アドレスで指定できるものとし、
その変数に対してのメモリ/レジスタ間移動命令は、4
バイトとする。
【0077】ステップ308では、前記ステップ305
〜ステップ307の結果を用いて、この組み合わせにお
ける基本ブロック全体の命令列長を算出する。
【0078】前記処理を全ての組み合わせにおいて実行
し(ステップ309)、ステップ310では、その結
果、基本ブロック内の命令列長が最小となる組み合わせ
を選択する。
【0079】前記図3の資源割付処理フローを実行する
図2の制御部36及び生存区間判定部31、変数資源割
付部35により、ソースプログラム中の各変数をレジス
タ資源(A0〜A3、D2、D3)と拡張レジスタ(E
0〜E7)とに割り付ける際に、第1の命令列長算出手
段32及び第2の命令列長算出手段33により算出され
た命令列長に基づいて、ソースプログラム中の変数の生
存区間内の参照頻度の高い変数を優先的に前記レジスタ
資源(A0〜A3、D2、D3)に割り付けるようにし
請求項1の資源割付手段37を構成する。
【0080】以上のような処理で機械語プログラムサイ
ズを最小化するコンパイル装置の処理について、図を用
いて更に詳細に説明する。
【0081】先ず、図6に、各変数のレジスタ割付けに
ついて第1の命令フォーマットによってアクセス可能な
レジスタ資源と、それ以外のレジスタ資源について、優
先度を付けずに出現順にレジスタ資源への割り付けを行
った場合(従来の方法)の変数の資源割付けと、その割
り付けに対応して命令を割り付けた場合の機械語命令プ
ログラムを示す。この場合の基本ブロックに対する命令
列長は46バイトになる。
【0082】次に、図7に、図5で示された変数の生存
区間と出現頻度をもとに、図3のステップ302の処理
により、第1の命令フォーマットで操作可能なレジスタ
のみ(この場合、具体的には、D2レジスタとD3レジ
スタ)に、優先的にレジスタ割付けを行い、その結果、
変数p1をレジスタD2に、変数p2をレジスタD3に
割り付けた場合の変数の資源割り付けと、その割り付け
に対応して命令を割り付けた場合の機械語命令プログラ
ムを示す。この場合の基本ブロックに対する命令列長は
42バイトとなり、図6で示した場合に比べて、4バイ
トのコードサイズの削減が図れていることが判る。
【0083】更に、図8に、図7で説明した場合とレジ
スタ資源の割り付け方は同様であるが、命令フォーマッ
トとして第2の命令フォーマットを選択する代りに第1
の命令フォーマットを選択して、命令の割り付け方を変
更した場合の機械語命令プログラムを示す。この場合、
基本命令ブロックに対するトータルの命令長自体は、図
7の場合より2バイト増加して、44バイトになってい
るが、個々の中間言語毎に機械語命令列長を比較してい
くと、中間言語s1及び中間言語s8に関しては、これ
等言語s1、s8が第1の命令フォーマットで記述され
た命令を含んで、各々、1バイトずつ機械語命令長が減
少していることが判る。ここで、中間言語s1では、使
用頻度の高い変数p1及びp2が第1のレジスタファイ
ル220内のレジスタD2、D3に各々割り付けられ
る。また、これ等変数p1、p2と共に使用される変数
t1も第1のレジスタファイル220内のワークレジス
タD0に一時的に割り付けられる。これにより、命令mo
v D2,D0 及び命令add D3,D0は、各々、第1の命令フォ
ーマットを使用して1バイトで記述される。
【0084】最後に、図7及び図8で示した結果をもと
に、レジスタ資源の割り付け、及び命令の割り付けを最
適化した機械語命令プログラムを図9に示す。図9で
は、図7及び図8の各中間言語の中で機械語命令長が短
い方の中間言語、即ち、中間言語s2〜s7では図7の
中間言語s2〜s7が、中間言語s1、s8では図8の
中間言語s1、s8が採用される。尚、図7の中間言語
s2、s3と図8の中間言語s2、s3とは機械語命令
長が同一であるが、図7の中間言語s2、s3、即ち命
令数が少なくて高速処理の可能な方の中間言語が採用さ
れる。その結果、図9では、図7の状態から、更に2バ
イトのコード削減が実現されており、図3及び図4で示
した中間言語プログラムに対して、最もコードサイズの
小さい機械語命令プログラムが生成されている。
【0085】前記図9の機械語命令プログラムは、中間
言語s1の命令mov D2,D0 、命令add D3,D0 、及び中間
言語s8の命令add 5,D0が第1のレジスタファイル22
0内のレジスタD0、D2、D3を用いて第1の命令フ
ォーマットで記述され、他の中間言語s2〜s7が第2
のレジスタファイル120を用いて第2の命令フォーマ
ットで記述されていて、この機械語命令プログラムは、
コンピュータ読み取り可能な記録媒体に記録される。
【0086】尚、以上の具体例では、基本ブロックの各
変数p1、p2、t1〜t8をレジスタD2、D3、E
0〜E7に割り付けたが、資源割り付けが必要な変数が
割り付け可能なレジスタの本数を越えて同時に存在する
場合には、これ等変数は前記各レジスタとメモリ資源と
に割り付けられる。この場合は、図3のステップS30
7においてメモリ資源に割り付けた場合の命令列長が算
出される。このように変数の一部をメモリ資源に割り付
ける場合、データ転送命令を含む命令列では、第1のレ
ジスタファイル220内の何れかのレジスタを一時的に
使用して第1の命令フォーマットが使用される。これに
より、命令数は増加するが、命令列長は短くなり、命令
コードサイズは小さくなる場合がある。
【0087】
【発明の効果】以上説明したように、本発明のコンパイ
ル装置及びコンパイル方法によれば、命令フォーマット
の種類に応じて扱えるレジスタ資源が異なり、且つ命令
フォーマットの種類に応じて命令長が異なる命令セット
を有するプロセッサにおいて、コードサイズの小さい機
械語プログラムを生成できるコンパイル装置及びコンパ
イル方法を提供できるという顕著な効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施の形態によるコンパイル装置
構成を示す構成図である。
【図2】同実施形態によるコンパイル装置の資源割り付
け手段の構成を示す構成図である。
【図3】同実施形態によるコンパイル装置の資源割り付
け手段における資源割り付けに関る処理フローを説明す
るフローチャート図である。
【図4】中間言語プログラムの一例を示す図である。
【図5】中間言語プログラム中の各変数の生存区間と参
照頻度を示した図である。
【図6】変数の資源割付けとそれに対応した機械語命令
プログラムの一例を示す図である。
【図7】変数の資源割付けとそれに対応した機械語命令
プログラムの一例を示す図である。
【図8】変数の資源割付けとそれに対応した機械語命令
プログラムの一例を示す図である。
【図9】変数の資源割付けとそれに対応した機械語命令
プログラムの一例を示す図である。
【図10】本発明によるコンパイル装置が対象とするデ
ータ処理装置の第1の命令フォーマット(1)を示す図
である。
【図11】同データ処理装置の第1の命令フォーマット
(1)の命令のリストの一部を示す図である。
【図12】同データ処理装置の第1の命令フォーマット
(2)を示す図である。
【図13】同データ処理装置の第1の命令フォーマット
(2)の命令のリストの一部を示す図である。
【図14】同データ処理装置において、第1のレジスタ
ファイルの構成を示すブロック図である。
【図15】同データ処理装置の第1の命令フォーマット
の命令の実行時のレジスタファイルのレジスタ番号を示
す図である。
【図16】同データ処理装置の第2の命令フォーマット
を示す図である。
【図17】同データ処理装置の第2の命令フォーマット
の命令のリストの一部を示す図である。
【図18】同データ処理装置のレジスタファイルの構成
を示すブロック図である。
【図19】同データ処理装置において、第1の命令フォ
ーマットの命令実行時のレジスタファイルのレジスタ番
号を示す図である。
【図20】同データ処理装置において、第2の命令フォ
ーマットの命令の実行時のレジスタファイルのレジスタ
番号を示す図である。
【符号の説明】 1 構文解析手段 2 最適化手段 3 資源割り付け手段 4 コード生成手段 31 生存区間判定部 32 第1の命令長算出手段 33 第2の命令長算出手段 34 第3の命令長算出手段 35 変数資源割り付け部 36 制御部 37 請求項1記載の資源割付手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平5−108373(JP,A) 特開 平7−105013(JP,A) 特開 平8−314727(JP,A) 特開 平7−121377(JP,A) 鈴木他,カスタマイズアドレス空間マ イコンのアーキテクチャ,電子情報通信 学会技術研究報告(CPSY93−35〜 44),Vol.93,No.320,p.17 −24 D.R.Ditzel他,The H ardware Architectu re of the CRISP Mi croprocessor,Proce edings of the 14th Annual Internation al Symposium on Co mputer Architectur e,p.309−319 (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/45

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 レジスタ資源と拡張レジスタ資源とを備
    え、第1の命令フォーマットで記述された命令と、前記
    第1の命令フォーマットよりも命令長が長い第2の命令
    フォーマットで記述された命令とを実行し、前記拡張レ
    ジスタ資源は前記第2の命令フォーマットで記述された
    命令でのみアクセスされるプロセッサを対象として、 入力されたソースプログラムを機械語に翻訳するコンパ
    イル装置であって、 前記ソースプログラム中の各変数が前記レジスタ資源又
    は前記拡張レジスタ資源に割り付けられた場合に、前記
    第1の命令フォーマットで記述された命令の命令列の長
    さを算出する第1の命令列長算出手段と、 前記ソースプログラム中の各変数が前記レジスタ資源又
    は前記拡張レジスタ資源に割り付けられた場合に、前記
    第2の命令フォーマットで記述された命令の命令列の長
    さを算出する第2の命令列長算出手段と、 前記ソースプログラム中の各変数を前記レジスタ資源と
    前記拡張レジスタ資源とに割り付ける際に、前記第1の
    命令列長算出手段及び前記第2の命令列長算出手段によ
    り算出された命令列長に基づいて、前記ソースプログラ
    ム中の変数の生存区間内の参照頻度の高い変数を優先的
    に前記レジスタ資源に割り付ける資源割付手段とを備え
    たことを特徴とするコンパイル装置。
  2. 【請求項2】 前記ソースプログラム中の各変数がメモ
    リに割り付けられた場合の命令列の長さを算出する第3
    の命令列長算出手段を備え、 前記資源割付手段は、前記ソースプログラム中の各変数
    の中で前記レジスタ資源に割り付けられなかった変数を
    前記拡張レジスタ資源に割り付けるか前記メモリに割り
    付けるかを、前記第2の命令列長算出手段及び前記第3
    の命令列長算出手段により命令列長を算出して決定する
    ことを特徴とする請求項1記載のコンパイル装置。
  3. 【請求項3】 前記資源割付手段は、前記レジスタ資源
    の一部を特定の変数に割り付けないワークレジスタとし
    て使用し、 前記レジスタ資源と前記拡張レジスタ資源との双方を用
    いる操作を、前記第2の命令フォーマットの命令で記述
    するか、又は前記ワークレジスタを用いた前記第1の命
    令フォーマットの命令及び前記ワークレジスタと前記拡
    張レジスタ資源との間の第2の命令フォーマットの転送
    命令との両命令で記述するかを、前記第1の命令列長算
    出手段及び前記第2の命令列長算出手段により命令列長
    を算出して命令列長が短くなるように決定する ことを特
    徴とする請求項1又は2記載のコンパイル装置。
  4. 【請求項4】 前記レジスタ資源は、前記第1の命令フ
    ォーマットで記述された命令及び前記第2の命令フォー
    マットで記述された命令の何れでもアクセスされ、 前記第1の命令フォーマットで記述された命令では前記
    レジスタ資源のみが参照される ことを特徴とする請求項
    1、2又は3記載のコンパイル装置。
  5. 【請求項5】 レジスタ資源と拡張レジスタ資源とを備
    え、第1の命令フォーマットで記述された命令と、前記
    第1の命令フォーマットよりも命令長が長い第2の命令
    フォーマットで記述された命令とを実行し、前記拡張レ
    ジスタ資源は前記第2の命令フォーマットで記述された
    命令でのみアクセスされるプロセッサを対象として、 入力されたソースプログラムを機械語に翻訳するコンパ
    イル方法であって、 前記ソースプログラム中の各変数を前記レジスタ資源と
    前記拡張レジスタ資源とに割り付けるに際し、 前記 ソースプログラム中の各変数が前記レジスタ資源又
    は前記拡張レジスタ資源に割り付けられた場合に、前記
    第1の命令フォーマットで記述された命令の命令列の長
    さを算出し、 前記ソースプログラム中の各変数が前記レジスタ資源又
    は前記拡張レジスタ資源に割り付けられた場合に、前記
    第2の命令フォーマットで記述された命令の命令列の長
    さを算出し、 前記算出された第1の命令フォーマットで記述された命
    令の命令列長及び前記第2の命令フォーマットで記述さ
    れた命令の命令列長に基づいて、前記ソースプログラム
    中の変数の生存区間内の参照頻度の高い変数を優先的に
    前記レジスタ資源に割り付ける ことを特徴とするコンパ
    イル方法。
  6. 【請求項6】 前記ソースプログラム中の各変数の中で
    前記レジスタ資源に割り付けられなかった変数を前記拡
    張レジスタ資源に割り付けるかメモリに割り付けるかを
    決定するに際し、 前記レジスタ資源に割り付けられなかった変数が前記拡
    張レジスタ資源に割り付けられた場合に、前記第2の命
    令フォーマットで記述された命令の命令列の長さを算出
    すると共に、 前記レジスタ資源に割り付けられなかった変数が前記メ
    モリに割り付けられた場合の命令列の長さを算出する
    とを特徴とする請求項5記載のコンパイル方法。
  7. 【請求項7】 前記レジスタ資源の一部を特定の変数に
    割り付けないワークレジスタとして使用しながら、 前記ソースプログラム中の各変数が前記レジスタ資源又
    は前記拡張レジスタ資源に割り付けられた場合に、前記
    第1の命令フォーマットで記述された命令の命令列の長
    さを算出すると共に、 前記ソースプログラム中の各変数が前記レジスタ資源又
    は前記拡張レジスタ資源に割り付けられた場合に、前記
    第2の命令フォーマットで記述された命令の命令列の長
    さを算出し、 前記両命令列長の算出結果により、命令列長が短くなる
    ように、前記レジスタ資源と前記拡張レジスタ資源との
    双方を用いる操作を、前記第2の命令フォーマットの命
    令で記述するか、又は前記ワークレジスタを用いた前記
    第1の命令フォーマットの命令及び前記ワークレジスタ
    と前記拡張レジスタ資源との間の第2の命令フォーマッ
    トの転送命令との両命令で記述するかの何れかを決定す
    ることを特徴とする請求項5又は6記載のコンパイル方
    法。
  8. 【請求項8】 前記レジスタ資源は前記第1の命令フォ
    ーマットで記述された命令及び前記第2の命令フォーマ
    ットで記述された命令の何れでもアクセスされ、前記第
    1の命令フォーマットで記述された命令では前記レジス
    タ資源のみが参照されるプロセッサを対象とするコンパ
    イル方法である ことを特徴とする請求項5、6又は7記
    載のコンパイル方法。
JP08357099A 1998-04-01 1999-03-26 コンパイル装置及びコンパイル方法 Expired - Fee Related JP3264901B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08357099A JP3264901B2 (ja) 1998-04-01 1999-03-26 コンパイル装置及びコンパイル方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-88473 1998-04-01
JP8847398 1998-04-01
JP08357099A JP3264901B2 (ja) 1998-04-01 1999-03-26 コンパイル装置及びコンパイル方法

Publications (2)

Publication Number Publication Date
JPH11345127A JPH11345127A (ja) 1999-12-14
JP3264901B2 true JP3264901B2 (ja) 2002-03-11

Family

ID=26424608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08357099A Expired - Fee Related JP3264901B2 (ja) 1998-04-01 1999-03-26 コンパイル装置及びコンパイル方法

Country Status (1)

Country Link
JP (1) JP3264901B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW525091B (en) * 2000-10-05 2003-03-21 Koninkl Philips Electronics Nv Retargetable compiling system and method
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
JP7163697B2 (ja) * 2018-09-28 2022-11-01 富士通株式会社 生成プログラム,情報処理装置及び生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D.R.Ditzel他,The Hardware Architecture of the CRISP Microprocessor,Proceedings of the 14th Annual International Symposium on Computer Architecture,p.309−319
鈴木他,カスタマイズアドレス空間マイコンのアーキテクチャ,電子情報通信学会技術研究報告(CPSY93−35〜44),Vol.93,No.320,p.17−24

Also Published As

Publication number Publication date
JPH11345127A (ja) 1999-12-14

Similar Documents

Publication Publication Date Title
US6023583A (en) Optimized variable allocation method, optimized variable allocation system and computer-readable memory containing an optimized variable allocation program
US5815720A (en) Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system
US5481708A (en) System and methods for optimizing object-oriented compilations
JP3220055B2 (ja) 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。
US7725883B1 (en) Program interpreter
US7571432B2 (en) Compiler apparatus for optimizing high-level language programs using directives
US6049667A (en) Computer system, method of compiling and method of accessing address space with pointer of different width therefrom
US20060212440A1 (en) Program translation method and program translation apparatus
US7000227B1 (en) Iterative optimizing compiler
KR100643268B1 (ko) 자바 가상 머신의 성능을 향상시키는 방법 및 상기 방법에의해 동작되는 시스템
JP5118745B2 (ja) メモリアクセス命令のベクトル化
US6738966B1 (en) Compiling device, computer-readable recording medium on which a compiling program is recorded and a compiling method
JP2009503677A (ja) プログラムをデータオブジェクトとしてサポートするコンパイラ
JP2002527815A (ja) プログラムコード変換方法
US6925639B2 (en) Method and system for register allocation
US5940621A (en) Language independent optimal size-based storage allocation
US6360360B1 (en) Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
US7143404B2 (en) Profile-guided data layout
EP0947922B1 (en) Compiler
JP5719278B2 (ja) 情報処理装置、プロファイル対象決定プログラム及び方法
US20030079210A1 (en) Integrated register allocator in a compiler
US7356812B2 (en) Passing parameters by implicit reference
JP3264901B2 (ja) コンパイル装置及びコンパイル方法
JPH09223023A (ja) コンパイル装置およびコンパイラ
US20070022413A1 (en) Tiered Register Allocation

Legal Events

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

Free format text: PAYMENT UNTIL: 20071228

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20081228

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091228

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091228

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees