JPH02171830A - コンパイラにおける最適データ割付け方式 - Google Patents

コンパイラにおける最適データ割付け方式

Info

Publication number
JPH02171830A
JPH02171830A JP63325303A JP32530388A JPH02171830A JP H02171830 A JPH02171830 A JP H02171830A JP 63325303 A JP63325303 A JP 63325303A JP 32530388 A JP32530388 A JP 32530388A JP H02171830 A JPH02171830 A JP H02171830A
Authority
JP
Japan
Prior art keywords
data
allocation
compiler
order
order information
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
JP63325303A
Other languages
English (en)
Inventor
Toshimi Osanai
小山内 聡美
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 JP63325303A priority Critical patent/JPH02171830A/ja
Publication of JPH02171830A publication Critical patent/JPH02171830A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はコンピュータシステムのコンパイラに関し、特
に基点となるベースアドレスを最大ディスプレースメン
トの間隔で割り当てベースアドレスをベースレジスタに
設定しベースアドレスからの相対アドレスをインデック
スレジスタやディスプレースメントに設定してデータ接
近を行うコンピュータシステムのコンパイラにおける最
通データ割付は方式に関する。
〔従来の技術〕
従来、この種のコンパイラにおけるデータ割付は方式で
は、データ割付けは原始プログラムにおけるデータの宣
言順に行われており、データの宣言がデータD、データ
B、データC,データAおよびデータEの順になされて
いるとすると、第7図に示すように、データ領域71へ
のデータの割付けもデータD、データB、データC,デ
ークAおよびデータEの順に行われていた。このため、
データAおよびデータBにデータ接近するには、データ
Aのデータ接近のためにアドレスCをベースレジスタ#
2にロードする命令と、データf3のデータ接近のため
にアドレスbをヘースレジスク#1にロードする命令と
を出力しなければならなかった。
〔発明が解決しようとする課題〕
上述した従来のコンパイラにおけるデータ割付は方式で
は、参照のないデータや参照の少ないデータを先に宣言
してしまうと、参照の多いデータはデータ領域の最大デ
ィスプレースメント以上の領域に割り付けられる可能性
が高くなるので、参照の多いデータがデータ領域の最大
ディスプレースメント以上の領域に割り付けられた場合
には、データ接近のためのベースレジスタへのロード命
令の出力、ベースレジスタからの相対アドレスの算出等
の処理を翻訳時にしなければならなくなり、原始プログ
ラムの翻訳速度が低下するという欠点がある。
また、目的プログラムのステップ数も増えるので、目的
プログラムの実行時の効率も悪くなるという欠点がある
特に、参照の多いデータが参照のないまたは少ないデー
タの中に点在して宣言されているような場合には上記欠
点は著しくなる。
本発明の目的は、上述の点に鑑み、参照回数の多いデー
タ順にデータをデータ領域に割り付けることにより、デ
ータ接近のための余計な目的ブ1:1グラムの出力や計
算を不要として、原始プログラムの翻訳速度を高速化す
るとともに目的プログラムの実行速度も高速化するよう
にしたコンパイラにおける最通データ割付は方式を提供
することGこある。
〔課題を解決するための手段〕
本発明のコンパイラにおける最通データ割付は方式は、
基点となるペースアドレスを最大ディスプレースメント
の間隔で割り当てペースアドレスをベースレジスタに設
定しベースアドレスからの相対アドレスをインデックス
レンスタやディスプレースメントに設定することにより
データ接近を行うコンピュータシステムのコンパイラに
おいて、各データの記号表へのポインタ値を得てポイン
タ値をデータの参照回数の多い順に整列し割付は順情報
とする参隙回数順整列手段と、この参照回数類整列手段
により整列された割付は順情報を入力し割付は順情報に
暴づいて参照回数の多いデータからデータ割付けを行う
参照回数順データ割付は手段とを有する。
〔作用〕
本発明のコンパイラにおける最通データ割付は方式では
、参照回数類整列手段が各データの記号表へのポインタ
値を得てポインタ値をデータの参jjq回数の多い順に
整列し割付は順情報とし、参照回数順データ割付は手段
が参照回数j頭整列手段により整列された割付は順情報
を入力し割付は順情報に基づいて参照回数の多いデータ
からデータ割付けを行う。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図は、本発明の一実施例に係る最通データ割付は方
式が適用されたコンパイラ1の構成を示すブロック図で
ある。このコンパイラlは、参照回数類整列手段4を含
む手続き部解析部3を有するフロントエンド部2と、参
照回数順データ割付は手段5と、バンクエンド部6とか
ら構成されている。
フロントエンド部2は、原始プログラム7を入力し、中
間言語8および割付は順情f19を出力する。フロント
エンド部2の中には様々な役割を分担する部分が存在す
るが、その中で利用者が記述した原始プログラム7のう
ちの手続き部の解析を主に担当するのが手続き部解析部
3であり、手続き部解析部3の中に割付は順情報9を参
照回数類になるように整列する参照回数類整列手段4が
設けられている。
参照回数順データ割付は手段5は、割付は順情+′19
をもとに実際にデータの割付は処理を行う手段であり、
フロントエンド部2とバックエンド部6との間に位置す
る。
バンクエンド部6は、フロントエンド部2から出力され
た中間言語8を入力し、コード生成および目的プログラ
ムlOの出力を主に行う。
第2図を参照すると、参照回数順整列手段4を含む手続
き部解析部3における処理は、手続き部読込みステップ
21と、手続き部終了判定ステップ22と、中間言語生
成ステップ23と、記号表取得ステップ24と、最上位
レベルデータ判定ステップ25と、最上位レヘルデータ
記号表取得ステップ26と、登録ビットオン判定ステッ
プ27と、参照回数カウントインクリメントステップ2
8と、アドレス登録および登録ビットオンステップ29
と、割付は順情報参照回数順整列ステップ30とからな
る。
第3図を参照すると、参照回数順データ割付は手段5に
おける処理は、記号表データ割付はステップ31からな
る。
次に、このように構成された本実施例の最通データ割付
は方式の動作について説明する。
コンパイラlのフロントエンド部2が原始プログラム7
を入力すると、手続き部解析部3は、原始プログラム7
の手続き部の一単位(例えば、転記、比較等の一単位)
を読み込み(ステップ21)、手続き部が終了でなけれ
ば(ステップ22)、読み込んだ1単位についての中間
言33Bを生成する(ステップ23)。
次に、手続き部解析部3は、生成した中間言語8と関連
するデータの記号表(シンボルテーブル)を得る(ステ
ップ24)。例えば、利用者が原始プログラム7の手続
き部に“A−B″と記述しこの記述がデータAにデータ
Bの内容を代入するという原始プログラム7の言語仕様
であるならば、生成される中間言語8は転記であるとい
う情報とデータへの記号表およびデータBの記号表とが
関連付けられている。
続いて、手続き部解析部3は、得られた記号表からデー
タが1番上のレベル番号をもつデータ(最上位レベルデ
ータ)であるか否かを調べ(ステップ25)、従属する
レベルのデータ(最上位レベルデータ以外のデータ)で
あったならば1番上のレベル番号をもつデータの記号表
を得る(ステップ26)、これは、1番上のレベル番号
をもつデータを11り付けて初めて、そのデータに従属
するレベルのデータ割付はアドレスが決定されるからで
ある。
このようにして得られた1番上のレベル番号をもつデー
タの記号表には初期値がオフのビット(以下、登録ビッ
トという)が用意されており、手続き部解析部3は、登
録ビットが初期状態〈オフ)であるか否かを調べ(ステ
ップ27)、初期状態であったならば割付は順情報9に
記号表のアドレスを記号表へのポインタとして登録し、
初めての参照のために割付は順情報9の中の参照回数に
初期値“1゛を入れ、記号表にも割付は順情?8へのポ
インタ(アドレス)を保存して登録ビットをオンにする
(ステップ29)。
例えば、第4図に示すように、データD、データB、デ
ータCおよびデータAの記号表41.42.43および
44が割付は順情報9に登録された状態から次にデータ
Eが参照された場合、データEの記号表45のアドレス
が割付は順情報9の5番目の記号表へのポインタとして
登録されることになる。
ステップ27で登録ビットが割付は順情報9に記号表を
登録済みの状態を示すオンであったならば、初めての参
照のときに記号表に保存しておいた割付は順情翰へのポ
インタから該当する割付は順情報9を得、参照回数を1
つカウントアツプする(ステップ28)。
このような一連の動作を繰り返し、原始プログラム7の
手続き部が終了したならば(ステップ22)、手続き部
解析部3は、参照回数順整列手段4により参照回数が1
回以上のデータを全て登録した割付は順情報9を参照回
数をキーとして参照回数が多い順になるように整列する
(ステップ30)。
例えば、原始プログラム7の手続き部で参照されたデー
タがデータA、データB、データC,データDおよびデ
ータEだけだったとすると、割付は順情@9に登録され
るのもこれらのデータの5つの記号表41〜45のみと
なり、これらを参照回数順に整列すると、第5図に示す
ような割付け1111!r情報9が得られる。なお、こ
こでは、以後記号表41〜45から割付は順情報9への
参照が行われないので、記号表41〜45の割付は順情
報へのポインタを同時にNULLクリアしている。
フロントエンド部2における処理が終了すると、参照回
数順データ割付は手段5は、参照回数順整列手段4によ
り整列された割付は順情fHを入力し、参照回数の多い
順にデータを割り付ける(ステップ51)。
この結果、データを割り付けられたデータ領域61は、
例えば第6図に示すようになり、通常、データ領域61
の先頭を示すアドレスaをヘースレジスタ#0にロード
する命令は無条件に出力されるので、このように割り付
けられたならば参照の多いデータAおよびデータBのデ
ータ接近のために新たにヘースレジスタへのロード命令
を出力する必要がなくなる。
〔発明の効果〕
以上説明したように本発明は、参照回数の多いデータ順
にデータを割り付けることにより、データ接近のための
余計な目的プログラムの出力や計算が不要となり、原始
プログラムの翻訳速度が高速になるという効果がある。
また、目的プログラムのステップ数も減少するので、実
行速度も高速になるという効果がある。
さらに、参照のあるデータのみをデータ領域に割り付け
ることになるので、余計なデータの割付は処理が不要と
なって原始プログラムの翻訳速度が高速になるとともに
、目的プログラムの実行時に余計ムデータがメモリを占
有することもなくなるので、目的プログラムの実行効率
も向上するという効果がある。
【図面の簡単な説明】
第1図は本発明一実施例に係る最通データ割付は方式が
適用されたコンパイラの構成を示すブロック図・ 第2図は第1図中の参照回数順整列手段を含む手続き部
解析部の処理を示す流れ図、 第3図は第1図中の参照回数順データ割付は手段の処理
を示す流れ図、 第4図は第1図中の割付は順情報への登録例を示す図、 第5図は第1図中の割付は順情報の整列例を示す図、 第6図は本実施例のコンパイラにおける最通データ割付
は方式によるデータ割付は例を示す図1、第7図は従来
のコンパイラにおけるデータ割付は方式によるデータ割
付は例を示す図である。 図において、 l・・・コンパイラ、 2・・・フロントエンド部、 3・・・手続き部解析部、 4・・・参11Q回数順整列手段、 5・・・参照回数順データ811付は手段、6・・・バ
ックエンド部、 7・・・原始プログラム、 8・・・中間言語、 9・・・割付は順情報、 10・・目的プログラム、 41〜45・・・記号表である。 第1図 第 図 第 図 第 図 第 図

Claims (1)

  1. 【特許請求の範囲】 基点となるベースアドレスを最大ディスプレースメント
    の間隔で割り当てベースアドレスをベースレジスタに設
    定しベースアドレスからの相対アドレスをインデックス
    レジスタやディスプレースメントに設定することにより
    データ接近を行うコンピュータシステムのコンパイラに
    おいて、各データの記号表へのポインタ値を得てポイン
    タ値をデータの参照回数の多い順に整列し割付け順情報
    とする参照回数順整列手段と、 この参照回数順整列手段により整列された割付け順情報
    を入力し割付け順情報に基づいて参照回数の多いデータ
    からデータ割付けを行う参照回数順データ割付け手段と を有することを特徴とするコンパイラにおける最通デー
    タ割付け方式。
JP63325303A 1988-12-23 1988-12-23 コンパイラにおける最適データ割付け方式 Pending JPH02171830A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63325303A JPH02171830A (ja) 1988-12-23 1988-12-23 コンパイラにおける最適データ割付け方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63325303A JPH02171830A (ja) 1988-12-23 1988-12-23 コンパイラにおける最適データ割付け方式

Publications (1)

Publication Number Publication Date
JPH02171830A true JPH02171830A (ja) 1990-07-03

Family

ID=18175311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63325303A Pending JPH02171830A (ja) 1988-12-23 1988-12-23 コンパイラにおける最適データ割付け方式

Country Status (1)

Country Link
JP (1) JPH02171830A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120028A (ja) * 1991-10-28 1993-05-18 Nec Corp マイクロコンピユータ装置
JP2006058991A (ja) * 2004-08-18 2006-03-02 Fujitsu Ltd コンパイル方法及びコンパイラ

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6234240A (ja) * 1985-08-08 1987-02-14 Nec Corp デ−タ割付け方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6234240A (ja) * 1985-08-08 1987-02-14 Nec Corp デ−タ割付け方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120028A (ja) * 1991-10-28 1993-05-18 Nec Corp マイクロコンピユータ装置
JP2006058991A (ja) * 2004-08-18 2006-03-02 Fujitsu Ltd コンパイル方法及びコンパイラ

Similar Documents

Publication Publication Date Title
US4215400A (en) Disk address controller
US6999980B2 (en) Eliminating write barriers for young objects
US7136887B2 (en) Method and mechanism for finding references in a card in time linear in the size of the card in a garbage-collected heap
US6119206A (en) Design of tags for lookup of non-volatile registers
US7062518B2 (en) Efficiently supporting the existence of long trains in a generation managed by the train algorithm
US5394545A (en) System for determination and display of memory used, dedicated, and shared by a process at a particular time
JPH02171830A (ja) コンパイラにおける最適データ割付け方式
US20040172507A1 (en) Better placement of objects promoted into a generation managed by the train algorithm
US7581213B2 (en) Allocating automatic variables to different memory banks
JPS6046748B2 (ja) コンピユ−タの割込処理方式
US7127710B2 (en) Identifying pure pointers to disambiguate memory references
JPH0371233A (ja) コンパイラにおける最適データ割付け方式
US7039664B2 (en) Combining entries in a card object table
JPS6234240A (ja) デ−タ割付け方式
JPH03109642A (ja) コンパイル装置
JPH11345127A (ja) コンパイラ
US7146390B2 (en) Staging the processing of remembered-set entries as part of collection based on the train algorithm
JPH02171831A (ja) コンパイラのデータ接近方式
JP4260895B2 (ja) マイクロコントローラにおける複数フォーマットアドレス指定
JP3470256B2 (ja) 命令コードのビット割付装置
JP3192177B2 (ja) オブジェクト処理装置
JPH0792757B2 (ja) 最適データ割付け方式
JP2000112767A (ja) コンパイラ及びその変数割り付け方法及びそのプログラ ム記録媒体
JPH02140825A (ja) プログラムの再配置処理方法
JPH0241525A (ja) 翻訳処理装置における番地割付処理方式