JPH02171831A - コンパイラのデータ接近方式 - Google Patents

コンパイラのデータ接近方式

Info

Publication number
JPH02171831A
JPH02171831A JP32677788A JP32677788A JPH02171831A JP H02171831 A JPH02171831 A JP H02171831A JP 32677788 A JP32677788 A JP 32677788A JP 32677788 A JP32677788 A JP 32677788A JP H02171831 A JPH02171831 A JP H02171831A
Authority
JP
Japan
Prior art keywords
block
blocks
variable
base
data area
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
JP32677788A
Other languages
English (en)
Inventor
Mitsuo Tsuda
津田 三男
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 JP32677788A priority Critical patent/JPH02171831A/ja
Publication of JPH02171831A publication Critical patent/JPH02171831A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ接近をベースレジスタ、インデックスレ
ジスタ及びディスプレースメントで行うアーキテクチャ
−をもつ計算機でのコンパイラのデータ接近方式に関す
る。
〔従来の技術〕
従来、この種のコンパイラのデータ接近方式は、翻訳処
理でソースプログラムの変数をデータ域に割付ける過程
で、データ域をブロック分けし、低位のブロックよりベ
ースアドレスを順番に割付けていた。また、ブロック中
の変数に対するデータ接近は、ベースレジスタ、インデ
ックスレジスタ及びディスプレースメントで接近を行う
アーキテクチャ−をもつ計算機では、ブロックに割当て
られたベースアドレスをベースレジスタに設定し、ベー
スアドレスからの相対アドレスをインデックスレジスタ
及びディスプレースメントに設定し行っていた。
更に、変数への接近の都度、ベースアドレスをベースレ
ジスタに設定する命令を少なくするために、複数のベー
スアドレスに対して低位のブロックのベースアドレスよ
りベースレジスタを割当てていた。
〔発明が解決しようとする課題〕
従来のコンパイラのデータ接近方式では、上記のように
ブロック分けした低位のベースアドレスの順番にベース
レジスタの複数個が割当てられるために、変数の参照回
数の多いブロックにベースレジスタが割当てされない場
合があり、このような場合に、データ接近のためにベー
スアドレスをベースレジスタに設定する命令が生成され
、データ接近のための命令の生成頻度が多く、目的プロ
グラムのステップ数及びサイズが著しく大きくなるとい
う問題があった。
〔課題を解決するための手段〕
本発明のコンパイラのデータ接近方式の楕或は、コンパ
イラシステムのソースプログラムの変数をデータ域に割
付ける過程で、そのデータ域をブロック分けし、そのブ
ロックに含まれる変数を参照する回数を記憶するブロッ
ク参照回数リストを備え、前記ブロックに含まれる変数
の参照する同数を調べる翻訳処理手段と、ブロック分け
した低位のプロ・yりよりベースアドレスを割付は前記
ブロック参照回数リストより変数の参照回数の多いブロ
ックに優先的にベースレジスタを割付け、この情報を基
にデータ接近を施しオブジェクト生成を行うコード生成
処理手段とを含むことを特徴どする。
〔実施例〕
次に1本発明について図面を参照1.て説明する。
第1図を参照すると、本発明の一実施例は、ソースプロ
グラムを記憶する手段1と、中間語を記憶する手段2と
、生成オブジェクトを記憶する手段3と、ブロック参照
回数を記憶する手段4と、翻訳処理手段5と、コード生
成手段6とから構成されるコンパイラシステムを示して
いる。
次に、翻訳処理手段5およびコード生成処理手段6での
処理についてそれぞれ第2図及び第3図を参照して説明
する。
第2図において、翻訳処理手段5は、ステップら−1で
ソースプログラム1を入力として楕文則意味則をチエツ
クを行い、変数のデータ域への割付けを行い、更に、ハ
ードウェアの最大ディスプレースメントの間隔でデータ
域をブロック分けを行う。次に、ステップ5−2でオブ
ジェクトの生成の基本単位である中間言語2に分解しな
がら、上記のデータ域をブロック分けしたブロックに含
まれる変数の参照回数を調べ、ブロック参照回数テーブ
ル4に記憶を行う。
第3図において、コード生成処理手段6は、ステップ6
−1でブロック分けし、たブロックにベースレジスタを
割付け、ブロック参照回数テーブル4で取得したブロッ
クm位の参照回数に基づき参照回数の多いブロックのベ
ースアドレスに対してベースレジスタを優先的に割当て
を行う。ステップ6−2で翻訳処理5で分解された中間
言語3を入力として、機械語を生成しオブジェクト3を
出力する。機械語の生成において、変数の参照は変数の
参照アドレスが含まれるブロックにベースレジスタが割
当てられている場合は、そのベースレジスタによってデ
ータ接近を行い、割当てられていない場合は、ブロック
に割付けられているベースアドレスを任意のベースレジ
スタにロード後、データ接近を行う。
第4図に、翻訳処理手段5で作成されコード生成手段6
で参照されるブロック参照回数チー・プル4の詳細を示
している。
ブロック参照回数テーブル4は、ハードウェアの最大デ
ィスプレースメントの間隔でブロック分けしなブロック
の個数を要素とする配列で構成され、その1要素が1ブ
ロツクに含まれる変数の参照回数を記憶する。
このようにして、ハードウェアの最大ディスプレースメ
ントの間隔で中間言語をブロック分けし、そのブロック
に含まれる変数の参照回数を調べ、参照回数の多いブロ
ックに対して優先的にベースレジスタを割当てることに
より、データ域への接近のためのオブジェクトを減少さ
せ、効率の良いオブジェクトの作成を行う。
〔発明の効果〕
本発明には、以上説明したように、変数の参照回数の多
いブロックにベースレジスタを優先的に割当てることに
より、データ接近のために生成される命令が減少し、目
的プログラムのステップ数及びサイズが大幅に削減でき
る効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例のコンパイラシステムの構成
図、第2図は第1図の翻訳処理部5の処理内容を示す図
、第3図は第1図のコード生成処理部6の処理内容を示
す図、第4図は第1図のブロック参照回数テーブル4の
テーブル構成図である。 1・・・ソースプログラム、2・・・中間言語、3・・
・ブロック参照回数テーブル、4・・・オブジェクト、
5・・・翻訳処理部、6・・・コード生成処理部。

Claims (1)

    【特許請求の範囲】
  1.  コンパイラシステムのソースプログラムの変数をデー
    タ域に割付ける過程で、そのデータ域をブロック分けし
    、そのブロックに含まれる変数を参照する回数を記憶す
    るブロック参照回数リストを備え、前記ブロックに含ま
    れる変数の参照する回数を調べる翻訳処理手段と、ブロ
    ック分けした低位のブロックよりベースアドレスを割付
    け前記ブロック参照回数リストより変数の参照回数の多
    いブロックに優先的にベースレジスタを割付け、この情
    報を基にデータ接近を施しオブジェクト生成を行うコー
    ド生成処理手段とを含むことを特徴とするコンパイラの
    データ接近方式。
JP32677788A 1988-12-23 1988-12-23 コンパイラのデータ接近方式 Pending JPH02171831A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32677788A JPH02171831A (ja) 1988-12-23 1988-12-23 コンパイラのデータ接近方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32677788A JPH02171831A (ja) 1988-12-23 1988-12-23 コンパイラのデータ接近方式

Publications (1)

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

Family

ID=18191585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32677788A Pending JPH02171831A (ja) 1988-12-23 1988-12-23 コンパイラのデータ接近方式

Country Status (1)

Country Link
JP (1) JPH02171831A (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 マイクロコンピユータ装置
WO2007018328A1 (en) * 2005-08-05 2007-02-15 Gq Soft Co., Ltd. Method for platform-free file compression and file security in cellular phone

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 マイクロコンピユータ装置
WO2007018328A1 (en) * 2005-08-05 2007-02-15 Gq Soft Co., Ltd. Method for platform-free file compression and file security in cellular phone

Similar Documents

Publication Publication Date Title
JP5934094B2 (ja) データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング
JPH04268927A (ja) メモリ管理方法
US7949848B2 (en) Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program
WO2004017207A2 (en) Method and system for memory management optimization
JPH05204656A (ja) スレッド固有データ保持方法
KR100349958B1 (ko) 메모리 관리를 위한 방법 및 장치
US6600493B1 (en) Allocating memory based on memory device organization
KR20010014861A (ko) 컴퓨터 시스템의 하나의 논리적 분할부에서의 최대인터랙티브 작업을 나머지 분할부들에서의 최대인터랙티브 작업과 별도로 지정하는 장치 및 방법
JP2000330865A (ja) メモリ・バンク間でメモリをインタリーブする方法
US6421824B1 (en) Method and apparatus for producing a sparse interference graph
CN111344667A (zh) 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的系统和方法
JPH02171831A (ja) コンパイラのデータ接近方式
JP2001101010A (ja) 仮想機械最適化方法
US7581213B2 (en) Allocating automatic variables to different memory banks
JPS6234240A (ja) デ−タ割付け方式
CN108241508B (zh) 处理OpenCL内核的方法及用于该方法的计算设备
Sudarsanam et al. Optimization of embedded DSP programs using post-pass data-flow analysis
JP3304445B2 (ja) プログラム生成処理装置
JPH0371233A (ja) コンパイラにおける最適データ割付け方式
KR100912114B1 (ko) 디지털 신호처리 프로세서에서 효과적인 데이터 전송을위한 메모리 운용 방법
JPH04344549A (ja) 計算機システムにおけるページ割り当て方式
JPH02171830A (ja) コンパイラにおける最適データ割付け方式
CN116127445A (zh) 基于内核态内存隔离硬件特性的eBPF内存隔离方法及系统
JPH03109642A (ja) コンパイル装置
JPH1063510A (ja) コード展開方法