JPH0522936B2 - - Google Patents

Info

Publication number
JPH0522936B2
JPH0522936B2 JP58190401A JP19040183A JPH0522936B2 JP H0522936 B2 JPH0522936 B2 JP H0522936B2 JP 58190401 A JP58190401 A JP 58190401A JP 19040183 A JP19040183 A JP 19040183A JP H0522936 B2 JPH0522936 B2 JP H0522936B2
Authority
JP
Japan
Prior art keywords
register
trace memory
trace
memory
source program
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 - Lifetime
Application number
JP58190401A
Other languages
English (en)
Other versions
JPS6081641A (ja
Inventor
Naosuke Haruna
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 JP58190401A priority Critical patent/JPS6081641A/ja
Publication of JPS6081641A publication Critical patent/JPS6081641A/ja
Publication of JPH0522936B2 publication Critical patent/JPH0522936B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
〔産業上の利用分野〕 この発明は、アセンブラソースプログラム中の
冗長な命令を削除する最適化処理の中で、レジス
タに対する冗長なロード命令を削除するレジスタ
トレース方法に関するものである。 〔従来例の構成とその問題点〕 従来より、アセンブラソースプログラムに対す
る最適化の一方法としてレジスタトレースが行わ
れている。第1図A,Bはそれぞれレジスタトレ
ース手法を説明するためのアセンブラ言語のフロ
ーチヤートである。1,4,7,1′,4′,7′
はレジスタRに変数Aの内容を代入するロード命
令、2,5,2′,5′はレジスタRの内容を変更
しない分岐命令を含まない命令群、3,3′は条
件分岐命令である。このうち、ロード命令4,
7,4′,7′は冗長であり、削除が可能である。
なぜなら、分岐命令は一般にレジスタの内容を変
更しないため、ロード命令1,1′によるレジス
タRに代入された変数Aの内容は保存されている
からである。 従来のレジスタトレース手法では、ロード命令
4,4′は削除可能であるが、ロード命令7,
7′は冗長あることの認識が不可能であり、削除
不可能である。この理由は、CPU内のレジスタ
に現在格納されている内容を記憶するレジスタト
レースメモリを1組のみを用いているので、分岐
によりプログラムの流れが二分するとき、それぞ
れの経路についてレジスタトレースメモリを持つ
ことができないため、従来では2経路の一方のみ
についてレジスタトレースを行い、他方について
は無視していたためである。そのため、レジスタ
トレースを無視された経路についてはCPU内の
レジスタに現在格納されている内容が判明しない
ので、2経路の合流点以後は以前のレジスタトレ
ースをクリアし、新たにレジスタトレースを開始
しなければならなかつた。 〔発明の目的〕 この発明は、より多くの冗長なロード命令を認
識して削除することができるレジスタトレース方
法を提供することを目的とする。 〔発明の構成〕 この発明のレジスタトレース方法は、アセンブ
ラソースプログラムにおいてレジスタへのロード
命令のソースオペランドを各レジスタ毎に記憶す
る複数のレジスタトレースメモリと、この複数の
レジスタトレースメモリのうちの1個を選択する
レジスタトレースメモリ指定手段を用い、 アセンブラソースプログラムの単一経路では前
記レジスタトレースメモリ指定手段によつて選択
された第1のレジスタトレースメモリを用いてレ
ジスタトレースを行うことにより前記アセンブラ
ソースプログラム中のレジスタに対する冗長なロ
ード命令を削除して前記アセンブラソースプログ
ラムを出力し、前記アセンブラソースプログラム
の分岐点では前記レジスタトレースメモリ指定手
段によつて選択された第2のレジスタトレースメ
モリに前記第1のレジスタトレースメモリに記憶
されている前記ロード命令のソースオペランドを
写し、前記分岐点で分岐した第1および第2の分
岐経路では前記第1および第2のレジスタトレー
スメモリをそれぞれ用いてレジスタトレースを行
うことにより前記アセンブラソースプログラム中
のレジスタに対する冗長なロード命令を削除して
前記アセンブラソースプログラムを出力し、前記
第1および第2の分岐経路の合流点では前記第1
および第2のレジスタトレースメモリに記憶され
ている前記ロード命令のソースオペランドを比較
しロード命令のソースオペランドが異なるレジス
タが存在すれば前記第1のレジスタトレースメモ
リにおいて前記ロード命令のソースオペランドが
異なるレジスタに対するロード命令のソースオペ
ランドの記憶を削除し前記第2のレジスタトレー
スメモリは未使用状態にし、前記合流点から延び
る合流経路では前記第1のレジスタトレースメモ
リを用いてレジスタトレースを行うことにより前
記アセンブラソースプログラム中のレジスタに対
する冗長なロード命令を削除して前記アセンブラ
ソースプログラムを出力する方法である。 そして、このような方法によつて、分岐でプロ
グラムの経路が例えば2つに分かれるときにおい
ても、それぞれの経路でレジスタトレースを続行
し、2つの経路の合流点以後においても以前のレ
ジスタトレースの情報をむだなく利用することに
より、より多くの冗長なロード命令を認識し削除
する。 〔実施例の説明〕 この発明の一実施例を第2図ないし第4図に基
づいて説明する。第2図はレジスタトレース方法
実施するためのレジスタトレース装置の構成を示
すブロツク図であり、10は入力となる入力アセ
ンブラソースプログラム、11A〜11Nはアセ
ンブラソースプログラムにおいてレジスタへのロ
ード命令のソースオペランドを各レジスタ毎に記
憶する複数のレジスタトレースメモリ、12は複
数のレジスタトレースメモリ11A〜11Nの中
の1つを指定するレジスタトレースメモリ指定手
段、13はレジスタトレースメモリ指定手段12
を通してレジスタトレースメモリ11A〜11N
にアセンブラソースプログラムにおいてレジスタ
へのロード命令のソースオペランドを各レジスタ
毎に記憶させ、またその内容を用いて冗長なロー
ド命令を認識し削除するレジスタトレース部、1
4はレジスタトレース部13において冗長なロー
ド命令が取り除かれた出力アセンブラソースプロ
グラムである。 つぎに、第3図のフローチヤートによつてレジ
スタトレース部13の動作を詳しく説明する。同
図において、記号RT〔R〕はレジスタトレース
メモリ指定手段12で指定されるレジスタトレー
スメモリ中のレジスタRに対する内容を示す。 ステツプ30では、入力アセンブラソースプロ
グラム10から一つの命令を読み込む。 ステツプ39では、ステツプ30において読み
込んだ一つの命令がストア命令であるかどうかを
判定する。この判定を行うのは、命令がストア命
令であるときにメモリの内容が変更され、同じソ
ースオペランドの内容をもつレジスタRも内容が
変更されたのと等価になるためである。 ステツプ31では、ステツプ39の判定結果が
NOである場合において、ステツプ30で読み込
んだ命令がステツプRの内容を変更する命令であ
るかどうかを判定する。 ステツプ32では、ステツプ31の判定結果が
YESである場合において、内容が変更されるレ
ジスタ名をレジスタRに記憶する。 ステツプ33では、ステツプ30で読み込んだ
命令がレジスタRへのロード命令かどうかを判定
する。 ステツプ34では、ステツプ33の判定結果が
YESの場合において、レジスタRへロードされ
るソースオペランドをメモリMEMに記憶する。
ロード命令のソースオペランドは、レジスタRに
格納されるデータが保持されているメモリ領域へ
のアドレスである。データは実行時に変化する
が、アドレスについては静的に定まる。レジスタ
の内容をこのアドレスで管理することにより、レ
ジスタの内容の一致/不一致を静的な検査で判定
することができる。 ステツプ35では、メモリMEMの内容とRT
〔R〕とが一致するかどうかを判定する。RT
〔R〕は以前にレジスタRにロードされたソース
オペランドを記憶しているので、メモリMEMの
内容がRT〔R〕と一致したとき(YES)は、同
じソースオペランドの内容をロードすることにな
るので、ステツプ30で読み込んだロード命令は
冗長である。この冗長なロード命令は出力しな
い。 ステツプ36では、ステツプ35の判定結果が
NOの場合において、RT〔R〕をメモリMEMの
内容とする。これは、メモリMEMの内容とRT
〔R〕とが一致しないときは、新たな内容がレジ
スタRにロードされるためである。 ステツプ40では、ステツプ39の判定結果が
YESの場合において、レジスタトレースメモリ
中でストア命令のソースオペランドをもつ(ソー
スオペランド=RT〔R〕となる)レジスタRを
探す。 ステツプ37では、ステツプ40において上記
のレジスタRがあれば、対応するレジスタトレー
スメモリの内容RT〔R〕を0にする。また、ス
テツプ33の判定結果がNOの場合も同様である
(ロード命令以外のレジスタ変更命令のときは、
RT〔R〕を0とし、レジスタRは何も記憶して
いない状態とする)。 ステツプ38では、ステツプ31の判定結果が
NOの場合またはステツプ37が実行された場合
またはステツプ36が実行された場合、すなわち
読み込んだ命令が冗長でないと判定された場合に
おいて、読み込んだ命令をそのまま出力する。 以上のステツプ30〜40を入力アセンブラソ
ースプログラムのすべての命令について繰り返す
ことにより冗長なロード命令を削除することがで
きる。 第4図は分岐を含むプログラムのフローを示
し、図において、20を単一経路、21を単一経
路20の分岐点、22および23をそれぞれ分岐
点21から分岐する分岐経路、24を分岐経路2
2,23の合流点、25を合流点から延びる合流
経路と称すすることにする。この図をアセンブラ
ソースプログラムと対応させると、分岐点21に
条件分岐命令があり、合流点24に分岐点21に
存在する条件分岐命令の飛び先ラベルがある。 この第4図により、分岐を含むプログラムにお
けるレジスタトレース部13の処理内容について
説明する。 (a) 単一経路20 複数のレジスタトレースメモリ11A〜11
Nの中の1個、例えば11Aを用いて、従来通
りのレジスタトレースを行う。 (b) 分岐点21 (ア) 経路20で使用していたレジスタトレース
メモリ11A以外のレジスタトレースメモ
リ、例えば11Bをレジスタトレースメモリ
指定手段12により選択する。 (イ) 経路20で使用していたレジスタトレース
メモリ11Aの内容を上記レジスタトレース
11Bにコピーする。 (ウ) 分岐経路22上では経路20で使用されて
いたレジスタトレースメモリ11Aを、そし
て分岐経路23上では(ア)、(イ)で得られたレジ
スタトレースメモリ11Bを、それぞれ用い
て従来のレジスタトレースを行う。 (c) 合流点24 (ア) 分岐経路23で使用されていたレジスタト
レースメモリ11Bと分岐経路22で使用さ
れていたレジスタトレースメモリ11Aの各
レジスタ毎の内容を比較する。 (イ) 同一内容を持つレジスタが存在すれば、そ
のレジスタの内容は合流点24以後のレジス
タトレースに利用可能であるので、レジスタ
トレースメモリ11Aのこのレジスタに対応
する内容はそのまま保存する。 (ウ) 内容が異なるレジスタが存在すれば、その
レジスタは分岐点21以後の2つの分岐経路
22,23内で異なる内容をもつことを表
し、合流点24以後のレジスタトレースに使
用することはできないので、レジスタトレー
スメモリ11Aのこのレジスタに対応する内
容をクリアし、レジスタには何もデータが保
存されていないことを示すようにする。そし
て、レジスタトレースメモリ11Bは未使用
状態にする。 (d) 合流経路25 (c)で得られたレジスタトレースメモリ11A
を用いて従来のレジスタトレースメモリを行
う。 このように、複数のレジスタトレースメモリ1
1A〜11Nを用いて、上記の処理を行うことに
より、従来のレジスタトレースでは行うことがで
きなかつた分岐を含むプログラムのすべての経路
についてレジスタトレースを続行することができ
る。これにより、より多くの冗長なロード命令の
認識・削除が可能となり、プログラムの大きさを
より減少させることができる。 なお、分岐経路22,23の中に分岐を含んで
いても、その分岐点でさらに新しいレジスタトレ
ースメモリを用いることにより同様の方法でレジ
スタトレースを行うことができる。 〔発明の効果〕 この発明のレジスタトレース方法によれば、よ
り多くの冗長なロード命令を認識して削除するこ
とができ、プログラムを小さくすることができ
る。 また、複数のレジスタトレースメモリでアセン
ブラソースプログラムにおいてレジスタへのロー
ド命令のソースオペランドを各レジスタ毎に記憶
する構成となつているので、レジスタトレースに
おいて、より詳細な管理を行うことができる。 また、レジスタ使用の情報をマシンがもつレジ
スタに関してのみ有する構成であるため、レジス
タ使用情報は、コンパイルするソースプログラム
の量に関係なく一定であり、かつ少量で済み、コ
ンパイラのサイズを少なくできる。 また、プログラムの全経路をトレース、つまり
分岐時および合流時を考慮してトレースする構成
であるため、最適化の効果が高いものである。 また、プログラムの全経路について検査を、レ
ジスタトレースメモリにレジスタへのロード命令
のソースオペランドを各レジスタ毎に記憶しそれ
を比較するという構成のみで行うことができ、コ
ンパイラの構成が簡単になるとともにコンパイル
時間も短縮される。
【図面の簡単な説明】
第1図A,Bは従来のそれぞれのレジスタトレ
ースを説明するためのアセンブラ言語のフローチ
ヤート、第2図はこの発明の一実施例のブロツク
図、第3図はレジスタトレース部の動作を示すフ
ローチヤート、第4図は分岐があるプログラムの
フローの説明図である。 10…入力アセンブラソースプログラム、11
A〜11N…レジスタトレースメモリ、12…レ
ジスタトレースメモリ指定手段、13…レジスタ
トレース部、14…出力アセンブラソースプログ
ラム。

Claims (1)

  1. 【特許請求の範囲】 1 アセンブラソースプログラムにおいてレジス
    タへのロード命令のソースオペランドを各レジス
    タ毎に記憶する複数のレジスタトレースメモリ
    と、この複数のレジスタトレースメモリのうちの
    1個を選択するレジスタトレースメモリ指定手段
    を用い、 アセンブラソースプログラムの単一経路では前
    記レジスタトレースメモリ指定手段によつて選択
    された第1のレジスタトレースメモリを用いてレ
    ジスタトレースを行うことにより前記アセンブラ
    ソースプログラム中のレジスタに対する冗長なロ
    ード命令を削除して前記アセンブラソースプログ
    ラムを出力し、前記アセンブラソースプログラム
    の分岐点では前記レジスタトレースメモリ指定手
    段によつて選択された第2のレジスタトレースメ
    モリに前記第1のレジスタトレースメモリに記憶
    されている前記ロード命令のソースオペランドを
    写し、前記分岐点で分岐した第1および第2の分
    岐経路では前記第1および第2のレジスタトレー
    スメモリをそれぞれ用いてレジスタトレースを行
    うことにより前記アセンブラソースプログラム中
    のレジスタに対する冗長なロード命令を削除して
    前記アセンブラソースプログラムを出力し、前記
    第1および第2の分岐経路の合流点では前記第1
    および第2のレジスタトレースメモリに記憶され
    ている前記ロード命令のソースオペランドを比較
    しロード命令のソースオペランドが異なるレジス
    タが存在すれば前記第1のレジスタトレースメモ
    リにおいて前記ロード命令のソースオペランドが
    異なるレジスタに対するロード命令のソースオペ
    ランドの記憶を削除し前記第2のレジスタトレー
    スメモリは未使用状態にし、前記合流点から延び
    る合流経路では前記第1のレジスタトレースメモ
    リを用いてレジスタトレースを行うことにより前
    記アセンブラソースプログラム中のレジスタに対
    する冗長なロード命令を削除して前記アセンブラ
    ソースプログラムを出力するレジスタトレース方
    法。
JP58190401A 1983-10-11 1983-10-11 レジスタトレース方法 Granted JPS6081641A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58190401A JPS6081641A (ja) 1983-10-11 1983-10-11 レジスタトレース方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58190401A JPS6081641A (ja) 1983-10-11 1983-10-11 レジスタトレース方法

Publications (2)

Publication Number Publication Date
JPS6081641A JPS6081641A (ja) 1985-05-09
JPH0522936B2 true JPH0522936B2 (ja) 1993-03-31

Family

ID=16257531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58190401A Granted JPS6081641A (ja) 1983-10-11 1983-10-11 レジスタトレース方法

Country Status (1)

Country Link
JP (1) JPS6081641A (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0820968B2 (ja) * 1987-06-20 1996-03-04 富士通テン株式会社 プログラム内容解析装置
JP2548197B2 (ja) * 1987-06-20 1996-10-30 富士通テン株式会社 プログラム内容解析装置
JPH0820973B2 (ja) * 1987-06-20 1996-03-04 富士通テン株式会社 プログラム内容解析装置
JPH0820970B2 (ja) * 1987-06-20 1996-03-04 富士通テン株式会社 プログラム内容解析装置
JPH0820971B2 (ja) * 1987-06-20 1996-03-04 富士通テン株式会社 プログラム内容解析装置
JPH0820969B2 (ja) * 1987-06-20 1996-03-04 富士通テン株式会社 プログラム内容解析装置
JPS63317851A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317846A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPS63317845A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
JPH0820972B2 (ja) * 1987-06-20 1996-03-04 富士通テン株式会社 プログラム内容解析装置
JPS63317848A (ja) * 1987-06-20 1988-12-26 Fujitsu Ten Ltd プログラム内容解析装置
IL95996A0 (en) * 1990-10-15 1991-07-18 Ibm Israel Global instruction scheduler for a computer
IL95995A0 (en) * 1990-10-15 1991-07-18 Ibm Israel Instruction scheduler for a computer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5561861A (en) * 1978-10-31 1980-05-09 Sanyo Electric Co Ltd Information processor
JPS58161045A (ja) * 1982-03-19 1983-09-24 Fujitsu Ltd コンパイラにおけるレジスタ管理方式

Also Published As

Publication number Publication date
JPS6081641A (ja) 1985-05-09

Similar Documents

Publication Publication Date Title
CA1159151A (en) Cellular network processors
CN101276290B (zh) 用于检查参数访问的方法及任务管理系统
JPH0522936B2 (ja)
US10698670B2 (en) Parallel program generating method and parallelization compiling apparatus
KR910010301A (ko) 명령 지정방법 및 실행장치
US11068463B2 (en) System and method for managing log data
US10725838B2 (en) Application startup control
Bowie Applications of graph theory in computer systems
Bhagyanath et al. Buffer allocation for exposed datapath architectures
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
US11327758B2 (en) Non-transitory computer-readable recording medium, assembly instruction conversion method and information processing apparatus
JP6600888B2 (ja) 並列化コンパイラ、並列化コンパイル装置、及び並列プログラムの生成方法
JP2729795B2 (ja) 並列計算機及びその制御方法
JP3705367B2 (ja) 命令処理方法
JP2585793B2 (ja) コンパイラシステム
JPH01267731A (ja) セグメントオーバレイプログラムの作成方式
JP2754105B2 (ja) データ駆動型情報処理装置
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JPS6032208B2 (ja) 命令シ−ケンス制御装置
JPH0619713B2 (ja) 論理型デ−タ処理装置
JPH01207824A (ja) モジュール結合制御方式
JPS64725B2 (ja)
JPS63133231A (ja) 計算機方式
JPS583042A (ja) プログラム実行方式
JPH0417031A (ja) 定数値伝播最適化方式