JPH06110702A - 手続き呼出し翻訳装置 - Google Patents

手続き呼出し翻訳装置

Info

Publication number
JPH06110702A
JPH06110702A JP4259362A JP25936292A JPH06110702A JP H06110702 A JPH06110702 A JP H06110702A JP 4259362 A JP4259362 A JP 4259362A JP 25936292 A JP25936292 A JP 25936292A JP H06110702 A JPH06110702 A JP H06110702A
Authority
JP
Japan
Prior art keywords
return value
resource
resources
procedure
register
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
JP4259362A
Other languages
English (en)
Inventor
Jiyunko Irikou
旬子 入交
Akira Tanaka
旭 田中
Hiroshi Yugawa
博司 湯川
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP4259362A priority Critical patent/JPH06110702A/ja
Publication of JPH06110702A publication Critical patent/JPH06110702A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 手続きの戻り値の受渡しの前後に生じる不要
なロード命令を削除する。 【構成】 本発明では、呼び出し側情報解析部101に
より各手続きに対して呼出し側の使用に必要とされる資
源情報を解析する。次に戻り値資源情報解析部102で
は、解析の結果に基づき、戻り値の受渡しに使用する資
源を選択する。続いて戻り値資源割付け部103では、
選択された資源を戻り値に割り付ける。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は高級プログラミング言語
を機械言語に翻訳するコンパイラにおける、手続き呼出
し翻訳装置に関するものである。
【0002】
【従来の技術】手続き呼び出しでは、呼出し元と呼出し
先との間で引数や戻り値の受渡しが行なわれる。コンパ
イラでは、これら引数や戻り値の受渡しを行なうため
に、一定の規約を設け手続き呼出しを実現している。
【0003】戻り値の受渡しはレジスタを(これを戻り
値レジスタと呼ぶ。)を通して行なわれる。一般に、こ
の戻り値レジスタは、全ての手続きに共通である固定の
レジスタを使用する。呼出し先の手続きでは、リターン
する前に計算された戻り値を戻り値レジスタに格納し、
呼出し元に戻り値を渡す。呼出し元は、戻り値レジスタ
を参照することによって、戻り値を受け取る。
【0004】ターゲットマシンが機能別に分離されたレ
ジスタ(データレジスタ・アドレスレジスタ)で構成さ
れ、各機能別レジスタ毎に演算の速度やサイズ等が異な
るマシンに対して、従来の技術で手続き呼出しの翻訳を
行なうと以下のようになる。戻り値レジスタは固定され
たデータレジスタD0とする。
【0005】呼出し先の手続きは、リターンする前に、
計算した戻り値を戻り値レジスタD0に格納する。呼出し
元で、戻り値を参照する演算を行なう場合には、戻り値
レジスタD0の値を参照することによって演算を行なう。
戻り値をアドレス参照等に使用する場合には、データレ
ジスタからアドレスレジスタへ値の転送を行なう。
【0006】
【発明が解決しようとする課題】従来の手続き呼出し翻
訳装置においては、戻り値の受渡しを全ての手続きに共
通の固定レジスタを通して行なうため、戻り値を使用し
て行なう演算が戻り値レジスタ上では不可能である場合
に、戻り値レジスタから別の機能レジスタへ値を転送す
る必要があった。このため、生成コードの実行速度の低
減やコードサイズの増大等の問題を生じていた。
【0007】本発明は、従来の手続き呼出し翻訳装置が
有していた前記の問題に鑑み、戻り値の受渡しの際に、
呼出し元の戻り値を使用する演算で生じる不要なコード
を削除することを目的とするものである。
【0008】
【課題を解決するための手段】本発明では、前記の目的
を解決するために、請求項1の発明においては、手続き
呼出しの戻り値の受渡しを行なう際に戻り値の属性を基
に戻り値の受渡しに使用する資源を選択する戻り値資源
選択部と、前記戻り値資源選択部により選択された資源
に戻り値を割り付ける戻り値資源割付け手段とを有する
ことを特徴としている。
【0009】請求項2に係る発明においては、呼出し元
で戻り値を使用する演算に必要な資源情報を解析する呼
出し元情報解析部と、請求項1記載の戻り値資源選択部
で選択する際に、前記呼出し元情報解析部により得られ
た資源情報を基に戻り値の受渡しに使用する資源を選択
する戻り値資源選択部とを有することを特徴とする1記
載の手続き呼出し翻訳装置としている。
【0010】
【作用】本発明の手続き呼出し翻訳装置は前記した構成
により、呼出し元で戻り値を使用する演算で必要な資源
を解析することにより、引数の受渡しに使用する資源を
選択し、選択された資源に戻り値を割り付けることによ
り、戻り値の受渡しを行なうように翻訳する。
【0011】これにより、戻り値を使用する演算を行な
う際に生じていた不要なロードを削除することを可能と
するものである。
【0012】
【実施例】以下、本発明の手続き呼出し翻訳装置の一実
施例を図面を用いて、説明する。
【0013】図1は本発明の一実施における手続き呼び
出し装置の構成図である。図中、101は呼出し元情報
解析部で、手続き内で呼び出した手続きの戻り値を使用
して行なう演算に必要な資源を解析する。
【0014】102は戻り値資源選択部で、前記呼出し
元情報解析部101で得られた情報から戻り値の受渡し
に使用する資源を選択する。
【0015】103は戻り値資源割付け部で、前記戻り
値資源選択部102で選択された資源を戻り値に割り付
ける。
【0016】前述の様に構成された本実施の手続き呼出
し翻訳装置の動作を以下に説明する。
【0017】ここではターゲットマシンとしては、以下
のようなマシンを仮定している。レジスタは機能別に分
離されたアドレスレジスタとデータレジスタの2種類が
あり、各命令の実行速度、サイズは各レジスタ毎に異な
ることとする。 (1)手続き呼出し翻訳装置は、各手続きに対して呼出
し元情報解析部101を起動する。 (2)前記操作に対し、呼出し元情報解析部101は、
呼出し元の手続きにおいて呼び出した手続きの戻り値を
使用する演算を行なう際に必要とされる資源の解析を行
なう。 (3)続いて、手続き呼出し翻訳装置は、戻り値資源選
択部102を起動する。 (4)戻り値資源選択部102は、呼出し元情報解析部
101により解析された呼出し元の戻り値を使用する演
算に必要な資源情報から、戻り値の資源としてデータレ
ジスタ又はアドレスレジスタのどちらかを選択する。こ
こでは、呼出し元で戻り値をアドレス参照として使用す
る場合には、アドレスレジスタを戻り値レジスタとす
る。アドレス参照しない場合には、データレジスタを選
択する。 (5)続いて、手続き呼出し翻訳装置は、戻り値資源割
付け部103を起動する。 (6)戻り値資源割付け部103は、戻り値資源選択部
102により選択された資源に戻り値を割り付ける。
【0018】以下、本発明の手続き呼出し翻訳装置の実
施例を図面を用いて説明する。以上の様に動作する本手
続き呼出し翻訳装置により具体的な動作の過程を図を参
照しつつ説明する。
【0019】図2は、本実施例の手続き呼出し翻訳装置
により、手続き文の翻訳過程の一例を示す摸式図であ
る。
【0020】手続きcallee1 では、アドレス参照をする
ことはなく、次に呼び出す手続きcallee2 の引数とな
る。戻り値は引数として別の手続きに渡されるので、引
数の受渡しのためにスタック上に積まれる。ここでは、
スタックに積む場合に実行速度やサイズ面で効率の良い
のは、データレジスタであるとする。呼出し元情報解析
部では、スタックに積む場合に効率の良いのはデータレ
ジスタであることから、手続きcallee1の戻り値資源情
報をデータレジスタとする。
【0021】手続きcallee2では戻り値をアドレス参照
に使用するため、呼出し元情報解析部は、手続きcallee
2の戻り値資源情報をアドレスレジスタとする。
【0022】呼出し元情報解析部により解析された資源
情報を元に、戻り値資源選択部では、callee1 の戻り値
レジスタとしてデータレジスタ、callee2の戻り値レジ
スタとしてアドレスレジスタを選択する。
【0023】戻り値資源割付けは、戻り値資源選択部に
より選択されたレジスタを各々の戻り値に割り付ける。
【0024】以上、本発明を実施例に基づき説明した
が、本発明はその趣旨に基づいて種々の変形が可能であ
り、何も上記実施例だけに限定されず例えば以下のよう
なものも包含されるのは当然である。 (1)本実施例では、資源としてレジスタを戻り値受渡
しに使用する資源としたが、資源はスタック情報の領域
やメモリ等とする。 (2)また、本実施例では呼出し元で戻り値の使用に必
要な資源を解析した上で、戻り値のレジスタを決定して
いるが、コンパイル速度の向上の面から、例えばC 言語
の様に予め変数の型情報として、変数がアドレス参照可
能であることを示す情報を持っている場合には、その型
情報から戻り値資源を選択する。
【0025】
【発明の効果】以上説明した様に、本発明の係る手続き
呼出し翻訳装置においては、手続きの戻り値の使用目的
に応じて、戻り値の受渡しに用いる資源を設定すること
により、戻り値を使用する演算において生じていた戻り
値の資源から別の資源への不要な転送命令を削除するの
で、その実用効果は高い。
【図面の簡単な説明】
【図1】本発明の一実施例の手続き呼出し翻訳装置の構
成図
【図2】本発明の一実施例の呼出し装置により手続きを
翻訳する過程の一例を示す摸式図
【符号の説明】
101 呼出し元情報解析部 102 戻り値資源選択部 103 戻り値資源割付け部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】手続き呼出しの戻り値の受渡しを行なう際
    に、戻り値の属性を基に戻り値の受渡しに使用する資源
    を選択する戻り値資源選択部と、前記戻り値資源選択部
    により選択された資源に戻り値を割り付ける戻り値資源
    割付け手段とを有することを特徴とする手続き呼出し翻
    訳装置。
  2. 【請求項2】呼出し元で戻り値を使用する演算に必要な
    資源情報を解析する呼出し元情報解析部と、請求項1記
    載の戻り値資源選択部で選択する際に、前記呼出し元情
    報解析部により得られた資源情報を基に戻り値の受渡し
    に使用する資源を選択する戻り値資源選択部とを有する
    ことを特徴とする請求項1記載の手続き呼出し翻訳装
    置。
JP4259362A 1992-09-29 1992-09-29 手続き呼出し翻訳装置 Pending JPH06110702A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4259362A JPH06110702A (ja) 1992-09-29 1992-09-29 手続き呼出し翻訳装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4259362A JPH06110702A (ja) 1992-09-29 1992-09-29 手続き呼出し翻訳装置

Publications (1)

Publication Number Publication Date
JPH06110702A true JPH06110702A (ja) 1994-04-22

Family

ID=17333067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4259362A Pending JPH06110702A (ja) 1992-09-29 1992-09-29 手続き呼出し翻訳装置

Country Status (1)

Country Link
JP (1) JPH06110702A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290652A (ja) * 2000-04-04 2001-10-19 Matsushita Electric Ind Co Ltd プログラム変換装置、プログラム変換方法及び記録媒体
JP2011181114A (ja) * 2011-06-23 2011-09-15 Panasonic Corp プログラム変換装置、プログラム変換方法及び記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290652A (ja) * 2000-04-04 2001-10-19 Matsushita Electric Ind Co Ltd プログラム変換装置、プログラム変換方法及び記録媒体
JP2011181114A (ja) * 2011-06-23 2011-09-15 Panasonic Corp プログラム変換装置、プログラム変換方法及び記録媒体

Similar Documents

Publication Publication Date Title
US6408433B1 (en) Method and apparatus for building calling convention prolog and epilog code using a register allocator
US6363522B1 (en) Method and apparatus for handling exceptions as normal control flow
JPH05204656A (ja) スレッド固有データ保持方法
EP0247374A2 (en) Provision of virtual storage resources to an operating system control program
JPH0283627A (ja) インタプリタ
US6434743B1 (en) Method and apparatus for allocating stack slots
US20030105927A1 (en) Method for use of stack
JPH08502612A (ja) データ処理システムおよびオペレーティング・システム
EP0908813A2 (en) Method and apparatus for implementing multiple return sites
JPH06110702A (ja) 手続き呼出し翻訳装置
JP2000353097A (ja) 低密回の干渉グラフを生成する方法および装置
US7581213B2 (en) Allocating automatic variables to different memory banks
US5392426A (en) Method and apparatus for use in program operation, control and control block management and storage
JPH04344536A (ja) レジスタ割当て方式
JPH06301549A (ja) プログラム翻訳装置
JP2932812B2 (ja) 言語処理プログラム実行装置
US9917598B1 (en) Implementing preemptive customized codeset converter selection on SAAS
JPH10293691A (ja) レジスタ割り付け方法
JP3566602B2 (ja) コンパイル方法、および、コンパイル用プログラムを記録した記録媒体
JPS62216042A (ja) デ−タ領域のメモリ割付方式
JPH09311792A (ja) レジスタ割り付け方法
JPS5960641A (ja) 呼出し関係解析方法
JPS58214930A (ja) デ−タ処理装置
JPS62205434A (ja) 再帰呼出し可能プログラムのコンパイル処理方式
JPH05189245A (ja) 資源割付け装置