JP2000081981A - Cコンパイラ - Google Patents

Cコンパイラ

Info

Publication number
JP2000081981A
JP2000081981A JP10250258A JP25025898A JP2000081981A JP 2000081981 A JP2000081981 A JP 2000081981A JP 10250258 A JP10250258 A JP 10250258A JP 25025898 A JP25025898 A JP 25025898A JP 2000081981 A JP2000081981 A JP 2000081981A
Authority
JP
Japan
Prior art keywords
value
array
address
program
generating
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.)
Pending
Application number
JP10250258A
Other languages
English (en)
Inventor
Yoshikazu Fujikawa
由和 藤川
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 IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP10250258A priority Critical patent/JP2000081981A/ja
Publication of JP2000081981A publication Critical patent/JP2000081981A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】プログラムソースのうちテーブル参照部分にお
いて、従来法に比べて高速かつ省メモリなオブジェクト
へ展開可能とするコンパイラの提供。 【解決手段】ソースプログラムの配設参照部における配
列添字固定値を含む場合、プログラムのリンク時にその
値が決まる前記配列の先頭アドレスと、固定値を予め計
算しておきアクセスの対象となるアドレス値を予め求
め、該アドレス値を参照することで配列の要素をアクセ
スするオブジェクトコードを生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機システムに
おいてソースプログラムを入力しオブジェクトコードを
生成するコンパイラ装置に関し、特に、C言語のコンパ
イラ装置に関する。
【0002】
【従来の技術】図7に、コンパイラの基本構成を示す。
コンパイラは、ソースプログラム13を入力し、データ
処理装置10のソースプログラム解析手段11で解析さ
れ、コード生成手段12でオブジェクトコード14を生
成出力する。ソースプログラム解析手段11は、一般的
に、ソースプログラムを入力して、識別子、定数、演算
子等の字句を解析してトークン列を生成する字句解析部
と、トークン列を文法に従い構文解析を行う構文解析部
と、コードの生成に備えて必要な意味解析を行なう意味
解析部を備えて構成され、またコード生成手段12は、
生成されるコードの実行時の効率を上げるための最適化
を行う最適化部と、オブジェクトコードを生成するコー
ド生成部を備えて構成されている。生成されたオブジェ
クトコードはリンカでライブラリ、外部モジュールとリ
ンクされて実行モジュールが生成される。
【0003】近時、シングルチップマイコンの開発環境
として高級言語であるC言語が用いられている。C言語
の採用は、アセンブラ言語と比較して、保守性や可視性
や移植性においてメリットがあるが、Cコンパイラの展
開方法によって、ROM効率や速度が犠牲になってしま
うというデメリットがある。
【0004】一例を挙げると、従来、Cコンパイラで
は、例えば配列(一つの変数名(配列名)の下に複数の
データを格納する記憶領域を宣言してもの)を用いたテ
ーブル参照を展開する場合、参照するアドレスの計算
は、配列添字の内容を先に計算し、その後テーブルの先
頭アドレスに加算する展開を行っている。
【0005】図4は、従来のCコンパイラにおいて配列
に目的のアドレスを算出するオブジェクトコードを生成
する処理フローを示す流れ図である。図4に示すよう
に、通常Cコンパイラの展開方法としては、配列(テー
ブル)の先頭アドレスを算出し(ステップ101)、テ
ーブル内オフセット値、すなわち配列添字の値を計算し
(ステップ102)、配列の先頭アドレスと添字の値と
をプログラム実行時に加減算して目的のアドレスを算出
し(ステップ103)、オブジェクトコードを生成して
いる。
【0006】図5は、従来のCコンパイラによる配列参
照の展開方法の一例を示す図であり、コンパイル結果を
アセンブリ言語(ニモーニック)で表した一例を示す図
である。
【0007】図5において、C言語によるソースプログ
ラム、 chN=chBottomTitle[chPointerLow-8] は、テーブル(配列)chBottomTitleにおいて、配列の
添字として、変数chPointerLowの値からイミディエット
(immediate)値8を減算した値をテーブル内オフセット
値として参照して変数chNに代入するプログラムであ
る。
【0008】Cコンパイラは、まずテーブル内オフセッ
トの可変値である変数chPointerLowの値(ラベル_chPoi
nterLowで参照されるアドレスの内容)をプロセッサの
アキュムレータaに格納し(mov a,_chPointerLo
w)、次にテーブル内オフセットの固定値(イミディエ
ット値)である「8」を減算することで(sub a,#08
H)、テーブル内オフセット値が、アキュムレータa上
に得られる。そして、このテーブル内オフセット値に、
テーブルの先頭オフセットである(_chBottomTitle)を
加算したデータにより、テーブルの参照を実現してい
る。すなわち、アキュムレータには、イミディエット値
_chBottomTitleにアキュムレータaの値を加算した値を
アキュムレータaに格納し(mov a,chBottomTitle
[a])、この値を、変数chNに対応して割り付けられたレ
ジスタr6に格納している。
【0009】
【発明が解決しようとする課題】しかしながら、この従
来のCコンパイラの例では、固定値同士の計算をわざわ
ざ展開するプログラムとして生成している。
【0010】ところで、アドレスの計算方法は、計算し
ようとする全ての要素がプログラム実行時でないと値が
決まらないものとは限らず、プログラム作成時(リンク
時)に値が決定できる部分も含まれる。
【0011】例えば図4のステップ101で配列の先頭
アドレスを算出しているが、この先頭アドレスは、配列
がプログラム実行時に動的割付が行われず、予め静的に
割り付けられるものである場合、リンク時にその値が決
定しているイミディエット値である。
【0012】図6は、従来のCコンパイラによる3次元
配列参照の展開方法の一例を示す図であり、コンパイル
結果をアセンブリ言語(ニューモニック)で表した一例
を示す図である。図6において、3次元(8×5×2
0)の配列chBottomTitleにおいて、C言語のソースプ
ログラム chN= chBottomTitle[3][2][chPointerLow-8] をコンパイルした場合、テーブル内オフセットの可変値
である変数chPointerLowの値(ラベル_chPointerLowで
参照されるアドレスの内容)をアキュムレータaに入れ
(mov a,_chPointerLow)、次にテーブル内オフセッ
トのイミディエット値である「8」を減算して(sub
a,#08H)、3つめの添字であるテーブル内オフセット
値を完成し、配列chBottomTitleの目的のアドレスへの
参照を行っている。(mov a, chBottomTitle+340[a],
mov r7,a)。
【0013】このように、従来の展開方法では、プログ
ラム作成時に値が決定できるものに対しても演算のため
のプログラムが展開されるため、プログラムステップが
増加し、ROM容量の増大と速度の低下が起こってしま
う。
【0014】また、生成されたプログラムコード(リン
ク済みの実行モジュール)をROMに格納する場合、R
OM容量を1バイトでもオーバーすると、製品として出
荷できないという、組み込み用マイコンの特性上、アセ
ンブラからC言語への展開を促す場合において、コンパ
イラから生成されるコードのステップの縮減は最も重要
視される項目の一つである。
【0015】ROM容量の増大と速度の低下というデメ
リットを出来るだけ抑えてCコンパイラの展開方法を最
適化することにより、生成コード容量を縮減し実行時の
処理速度を向上することができる。
【0016】そして、テーブル参照は、Cソースプログ
ラムでよく使われる構文であり、この個所の効率化はC
コンパイラ全体の効率的な展開方法に大きく寄与できる
ことが期待される。
【0017】したがって、本発明は、上記技術的課題の
認識に基づき創案されたものであって、その目的は、プ
ログラムソースのうちテーブル参照部分において、従来
法に比べて高速かつ省メモリなオブジェクトへ展開可能
とするコンパイラ装置を提供することにある。
【0018】
【課題を解決するための手段】前記目的を達成する本発
明のコンパイラ装置は、ソースプログラム中でアクセス
の対象となる配列の目的の要素のアドレスを算出するオ
ブジェクトコード生成の最適化を行う最適化手段であっ
て、前記プログラムの配列参照部における配列内のオフ
セット値として、イミディエット値のみ、又は、プログ
ラムのリンク時にその値が決まる値とイミディエット値
との演算からなる場合、プログラムのリンク時にその値
が決まる前記配列の先頭アドレスと、前記イミディエッ
ト値、又は、前記プログラムのリンク時にその値が決ま
る値と前記イミディエット値の演算と、の加減算から、
アクセスの対象となるアドレスを予め求めてしまい、該
アドレス値を参照することで配列の要素をアクセスする
オブジェクトコードを生成する最適化手段を備える。
【0019】
【発明の実施の形態】本発明の実施の形態について説明
する。本発明は、Cプログラムソースのうち配列(テー
ブル)参照部分で、アクセスの対象となる配列のアドレ
スを決める配列内のオフセット値(テーブル内オフセッ
ト値)が、プログラム作成時に値が決まるような定数値
と、プログラム実行時に値が決まるような変数値の、加
算もしくは減算であるようなテーブル参照部分につい
て、テーブル内オフセット値が固定値の場合、テーブル
先頭値との固定値同士の加減算になるので、加減算を行
うオブジェクトを生成するのではなく、プログラム作成
時(リンク時)にアクセスの対象となるアドレスを計算
してしまい、固定されたアドレス値を参照するプログラ
ムを生成することで、従来法に比べて高速かつ省メモリ
なオブジェクトへ展開する手段を提供するものである。
なお、本発明のコンパイラ装置の概略構成は図7に示し
たものと同様とされ、本発明はコード生成の最適化を行
うものである。
【0020】テーブル参照の展開は、テーブルの先頭ア
ドレスに、テーブル内オフセット値を増減させることに
より行われる。通常、テーブル先頭アドレスは、プログ
ラム作成時(リンク時)に値が決定される固定値であ
り、テーブル内オフセット値はプログラム実行時にその
値が決定される可変値である。
【0021】プログラムでは、配列の添字(インデク
ス)であるテーブル内オフセット値が固定値(イミディ
エット値)の場合もあり、またあるいは、テーブル内オ
フセット値が固定値と可変値の加減算の場合もあり得
る。
【0022】テーブル内オフセット値が固定値の場合に
は、配列の先頭アドレスとオフセット値との加減算は、
固定値同士の加減算になるので、加減算を行うオブジェ
クトを生成するのではなく、プログラム作成時(リンク
時)にアクセスの対象となるアドレスを先に計算してし
まい、固定されたアドレス値を参照するオブジェクトコ
ードを生成することにより、加減算部分を省略した、オ
ブジェクトコードを生成することが出来る。この結果、
生成されたオブジェクトコードは、実行の高速化と、省
メモリ化を図ることができる
【0023】またテーブル内オフセット値が固定値と可
変値の加減算の場合には、可変値が含まれるため、プロ
グラム作成時(リンク時)にアクセスの対象となるテー
ブルのアドレスを決定することは出来ない。そのため、
従来のコンパイラは、テーブルの先頭アドレスとテーブ
ル内オフセット値を別々に計算してそれら2つを加減算
するようなオブジェクトプログラムを生成していた。
【0024】本発明の実施の形態においては、テーブル
の先頭アドレスとテーブル内オフセット値のうち、その
中に含まれる固定値(イミディエット値)同士だけは、
あらかじめ計算しておくことが出来る場合がある。この
場合、全てを計算するように展開するよりも、固定値同
士を計算させておくことにより、加減算命令1つ分だ
け、節約することが出来る。なお、本発明の実施の形態
に係るコンパイラの処理はコンピュータ上で実行される
プログラムによって実現され、本発明は、上記プログラ
ムを記録したフロッピーディスク、CD−ROM等の記
録媒体も含む。
【0025】
【実施例】本発明の実施例について以下に説明する、図
1は、本発明の一実施例の処理フローを示す流れ図であ
る。
【0026】図1を参照すると、まずステップ201で
配列の先頭アドレスを決定する。
【0027】次のステップ202で、配列添字が変数を
含まないような固定値のみで構成されているか否か調べ
る。
【0028】ステップ202の判定の結果、配列添字が
変数を含まないような固定値のみで構成されている場
合、ステップ207へ移行し、そうでなければステップ
203へ移行する。
【0029】ステップ203では、配列添字が変数を含
んでいるが固定値との加減算であるか否かを判別し、変
数を含んでいるが固定値との加減算である場合ステップ
2−6へ移行し、そうでなければステップ204へ移行
する。
【0030】ステップ206では、最適化を施しても問
題が無いか否か調査する。これは、配列添字のみを先に
計算する場合と、配列添字の固定値を配列の先頭アドレ
スを先に計算する場合とでは、その時点での変数値によ
って、アドレスの計算結果が異なる場合があるためであ
る。アドレスの計算順位によって計算結果が変わる事に
ついての詳細は実施例で説明する。ステップ206の判
定は、本発明の方法を施してもよいかを使用者に選択さ
せるものでもある。
【0031】ステップ203において配設添字が固定値
との加減算でない場合、及びステップ206において最
適化を施すことが不可の場合、ステップ204、205
の処理にて、従来法と同じ方法でアドレスを計算する。
すなわちステップ204で配列添字内の計算式を計算す
るようなオブジェクトを生成し、次にステップ205
で、ステップ204の計算結果を、ステップ201で決
定した配列の先頭アドレスに加算して、目的のアドレス
を算出するようなオブジェクトを生成する。
【0032】ステップ206で、最適化を施しても問題
がない場合、ステップ207に移行し、アドレスを計算
する。すなわち、ステップ207で、まず配列添字内の
固定値(イミディエット値)と、ステップ201で決定
した配列の先頭アドレスを予め計算しておきイミディエ
ット値として算出しCコンパイラで記憶しておく。次
に、ステップ208で、リンク時に値が計算出来ない変
数値と、ステップ207で計算し記憶しておいたイミデ
ィエット値を計算して、目的のアドレスを算出するオブ
ジェクトを生成する。
【0033】図2は、本発明の一実施例のコンパイラを
説明するための図であり、コンパイル結果の一例を示す
図である。
【0034】従来のCコンパイラでは、図5に一例を示
したように、固定値同士の計算をわざわざ展開するプロ
グラム(例えばsub a,#08)として生成している。
【0035】これに対して、本発明の一実施例では、固
定値として値が決まっているものはそれらを先に計算し
ても問題が無い場合、固定値同士を先に計算させ、その
値と可変値との演算を行う。
【0036】図2において、「8」はイミディエット値
であるが、配列chBottomTitleの先頭アドレスを示すラ
ベル_chBottomTitleは、リンク時に値が決定するアドレ
スであるため、テンポラリ(一時的)ラベルとして、_c
hBottomTitle-8にその値が設定されるラベル@@chBottom
Titleを生成する(@@chBottomTitle equ _chBottomTi
tle-8)。このラベル@@chBottomTitleはリンク時にその
アドレスの割付が行われる配列chBottomTitleの先頭ア
ドレス_chBottomTitleから8差し引いた値に設定され
る。そして、@@chBottomTitleには、固定値同士を計算
させた結果が入るようにプログラムを展開する。(mov
a, @@chBottomTitle[a])。
【0037】すなわち、配列chBottomTitleの添字(オ
フセット)に含まれる可変値である変数chPointerLowの
値(ラベル_chPointerLowで参照されるアドレスの内
容)をプロセッサのアキュムレータaに格納し(mov
a,_chPointerLow)、次に、アキュムレータaの値に@@
chBottomTitle分オフセットしたアドレスの内容をアキ
ュムレータaに格納し(mov a,@@chBottomTitle
[a])、この値を、変数chNに対応して割り付けられたレ
ジスタr6に格納している
【0038】従来法では、テーブル内オフセットの値を
先に計算していたが、本発明の一実施例では、固定値同
士の値の計算を先に行う。この場合、計算の優先順位が
変わることにより、結果が変わる場合には、この最適化
は適用できない。このため、他の多くの最適化手段と同
様に、この最適化を行うには計算の優先順位を変えても
影響が無い場合のみに限られる。
【0039】次に、アドレスの計算順位が変わると、結
果が変わってしまう場合について補足する。一例とし
て、テーブル内オフセットのオーバーフロー(キャリー
ボロー)がある。上記例では、図2において、chPointe
rLowは、unsigned char型であるため、変数chPointerLo
wの値が0〜7の場合に8差し引くことによってキャリ
ーボローが発生する。unsigned char型でキャリーボロ
ーが発生すると、見かけ上、値が256だけ増えたよう
に見える。
【0040】上記例で、chBottomTitleが1000h、chPoin
terLowが05h(但し、hはヘキサデジマル表記を示す)の
場合、キャリーボローが発生し、テーブル内オフセット
の値を先に計算すると参照アドレス値は、1000h[05h−
8]=1000h[0fdh]=10fdhとなる。
【0041】一方、固定値同士の値の計算を先に行うと
参照アドレス値は、1000h[05h−8]=0ff8h[05h]=0
ffdhとなる。
【0042】このように、アドレスの計算順位が変わる
と、結果が変わってしまう場合のために、本発明の一実
施例による最適化処理を行う否かをオプション設定にて
選択できるようにしておくとよい。
【0043】本実施例により、最終添字以外が固定値で
あるような2次元以上のテーブル配列においても、生成
されるオブジェクトは加減算命令(実施例では減算命
令)が一つ省略出来、省メモリなオブジェクトが生成で
きる。また、命令が少なくなった分だけ、高速に実行す
ることが出来るオブジェクトが生成できる。
【0044】次に、本発明は、1次元の配列にとどまら
ず、2次元以上のテーブル配列について、最終添字以外
が固定値の場合も、見かけ上一次元のテーブル配列と見
なせるため、前記実施例と同様にして、最適化を行うこ
とができる。
【0045】図3は、本発明の一実施例のCコンパイラ
による3次元配列参照の展開方法の一例を示す図であ
り、コンパイル結果をアセンブリ言語(ニモーニック)
で表した一例を示す図である。図3において、3次元
(8×5×20)の配列chBottomTitleにおいて、C言
語のソースプログラム chN= chBottomTitle[3][2][chPointerLow-8] をコンパイルした場合、3次元(8×5×20)の配列
chBottomTitleにおいて、C言語のソースプログラム chN= chBottomTitle[3][2][chPointerLow-8] をコンパイルした場合、8はイミディエット値である
が、配列chBottomTitleの先頭アドレス_chBottomTitle
は、リンク時に値が決定するアドレスであるため、テン
ポラリ(一時的)ラベルとして、@@chBottomTitleを生
成する(@@chBottomTitle equ _chBottomTitle-8)。
そして、アキュムレータaの値に@@chBottomTitleオフ
セットしたアドレスの内容をアキュムレータaに格納す
ることで(mova,@@chBottomTitle+340[a])、3つめ
の添字であるテーブル内オフセット値を完成し、この値
を、変数chNに対応して割り付けられたレジスタr7に
格納する。
【0046】
【発明の効果】以上説明したように、本発明によれば、
生成されるオブジェクトは、加減算命令(実施例では減
算命令)が一つ省略することができ、省メモリなオブジ
ェクトコードを生成することが出来、命令が少なくなっ
た分だけ、高速に実行する事が出来るオブジェクトが生
成できる、という効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例の処理フローを示す図であ
る。
【図2】本発明の一実施例でコンパイルした結果を示す
図である。
【図3】本発明の一実施例でコンパイルした結果を示す
図である。
【図4】従来のコンパイラの処理フローを示す図であ
る。
【図5】従来のコンパイラでコンパイルした結果を示す
図である。
【図6】従来のコンパイラでコンパイルした結果を示す
図である。
【図7】従来のコンパイラ装置の構成を示す図である。
【符号の説明】
10 データ処理装置 11 ソースプログラム解析手段 12 コード生成手段 13 ソースプログラム 14 オブジェクトコード
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年10月12日(1999.10.
12)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】ソースプログラムを入力しオブジェクトコ
    ードを生成するコンパイラ装置において、 前記ソースプログラム中でアクセスの対象となる配列の
    目的の要素のアドレスを算出するオブジェクトコードを
    生成するにあたり、前記プログラムの配列参照部におけ
    る配列内の添字として、イミディエット値を含む場合、
    プログラムのリンク時にそのアドレス値が決まる前記配
    列の先頭アドレスと、前記イミディエット値との加減算
    から、アクセスの対象となるアドレス値を先に生成して
    おき、該アドレス値を参照して配列の要素をアクセスす
    るコードを生成することで最適化を施す手段を備えた、
    ことを特徴とするコンパイラ装置。
  2. 【請求項2】ソースプログラムを入力しオブジェクトコ
    ードを生成するコンパイラ装置において、 前記ソースプログラム中でアクセスの対象となる配列の
    目的の要素のアドレスを算出するオブジェクトコードを
    生成するにあたり、前記プログラムの配列参照部におけ
    る配列内の添字として、変数とイミディエット値との演
    算からなる場合、プログラムのリンク時にそのアドレス
    値が決まる前記配列の先頭アドレスと、前記イミディエ
    ット値との加減算から定まるアドレス値を先に生成して
    おき、該アドレス値と前記変数値との演算からアクセス
    対象の配列の要素をアクセスするオブジェクトコードを
    生成することで最適化を施す手段を備えた、ことを特徴
    とするコンパイラ装置。
  3. 【請求項3】前記配列の先頭アドレスを指示するラベル
    と前記イミディエット値との加減算の値を新たなラベル
    として定義して生成し、 前記配列の要素の参照プログラムに対して、前記変数値
    と前記ラベルをオフセットとしてアドレスを規定するオ
    ペランド部に備えた命令を生成する、ことを特徴とする
    請求項2記載のコンパイラ装置。
  4. 【請求項4】ソースプログラムを入力しオブジェクトコ
    ードを生成するコンパイラにおいて、前記ソースプログ
    ラム中でアクセスの対象となる配列の目的の要素のアド
    レスを算出するオブジェクトコードを生成するにあた
    り、前記プログラムの配列参照部における配列内の添字
    として、イミディエット値を含む場合、プログラムのリ
    ンク時にそのアドレス値が決まる前記配列の先頭アドレ
    スと、前記イミディエット値との加減算から、アクセス
    の対象となるアドレス値を先に生成しておき、該アドレ
    ス値を参照して配列の要素をアクセスするコードを生成
    する処理を、コンピュータ上で実行するためのプログラ
    ムを記録した記録媒体。
  5. 【請求項5】ソースプログラムを入力しオブジェクトコ
    ードを生成するコンパイラにおいて前記ソースプログラ
    ム中でアクセスの対象となる配列の目的の要素のアドレ
    スを算出するオブジェクトコードを生成するにあたり、
    前記プログラムの配列参照部における配列内の添字とし
    て、変数とイミディエット値との演算からなる場合、プ
    ログラムのリンク時にそのアドレス値が決まる前記配列
    の先頭アドレスと前記イミディエット値との加減算から
    定めるアドレス値を先に生成しておき、該アドレス値と
    前記変数値との前記演算からアクセス対象の配列の要素
    をアクセスするオブジェクトコードを生成する処理を、
    コンピュータ上で実行するためのプログラムを記録した
    記録媒体。
JP10250258A 1998-09-04 1998-09-04 Cコンパイラ Pending JP2000081981A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10250258A JP2000081981A (ja) 1998-09-04 1998-09-04 Cコンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10250258A JP2000081981A (ja) 1998-09-04 1998-09-04 Cコンパイラ

Publications (1)

Publication Number Publication Date
JP2000081981A true JP2000081981A (ja) 2000-03-21

Family

ID=17205219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10250258A Pending JP2000081981A (ja) 1998-09-04 1998-09-04 Cコンパイラ

Country Status (1)

Country Link
JP (1) JP2000081981A (ja)

Similar Documents

Publication Publication Date Title
JP3602857B2 (ja) 多機種対応型情報処理システム、および、方法
JP5419325B2 (ja) プログラム・コードを変換するための共用コード・キャッシングの方法および装置
US5586328A (en) Module dependency based incremental compiler and method
US6023583A (en) Optimized variable allocation method, optimized variable allocation system and computer-readable memory containing an optimized variable allocation program
JPH09330233A (ja) 最適目的コード生成方法
Liem et al. Address calculation for retargetable compilation and exploration of instruction-set architectures
JP5583514B2 (ja) バイナリコードを最適化するコンパイル方法、及びそのコンパイラシステム、並びにコンピュータ・プログラム
JP2007531075A5 (ja)
JP2000047874A (ja) プレロ―ドクラスのフットプリント低減装置及び方法
JPH0695311B2 (ja) コード最適化方法
JP2004038597A (ja) コンパイラ装置
US6148439A (en) Nested loop data prefetching using inner loop splitting and next outer loop referencing
JPH06324881A (ja) メモリデータの重なり判定機能を備えたコンパイラ装置
Pyka et al. Versatile system-level memory-aware platform description approach for embedded MPSoCs
US20010044930A1 (en) Loop optimization method and a compiler
JP2000353097A (ja) 低密回の干渉グラフを生成する方法および装置
JP3840149B2 (ja) コンパイラ、演算処理システム及び演算処理方法
Housel et al. A methodology for machine language decompilation
JPH10320212A (ja) キャッシュ向け最適化方法
JP2000081981A (ja) Cコンパイラ
JP2018124877A (ja) コード生成装置、コード生成方法、およびコード生成プログラム
US20040064301A1 (en) Software development system, simulator, and recording medium
JP3313859B2 (ja) 冗長式除去装置
JPH02176938A (ja) 機械語命令最適化方式
US20040045018A1 (en) Using address space bridge in postoptimizer to route indirect calls at runtime

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010619