JP3254877B2 - 処理配置装置および方法 - Google Patents

処理配置装置および方法

Info

Publication number
JP3254877B2
JP3254877B2 JP01931994A JP1931994A JP3254877B2 JP 3254877 B2 JP3254877 B2 JP 3254877B2 JP 01931994 A JP01931994 A JP 01931994A JP 1931994 A JP1931994 A JP 1931994A JP 3254877 B2 JP3254877 B2 JP 3254877B2
Authority
JP
Japan
Prior art keywords
satisfied
condition
processing
common
conditional
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 - Fee Related
Application number
JP01931994A
Other languages
English (en)
Other versions
JPH07230384A (ja
Inventor
和司 山本
旭 田中
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 Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP01931994A priority Critical patent/JP3254877B2/ja
Publication of JPH07230384A publication Critical patent/JPH07230384A/ja
Application granted granted Critical
Publication of JP3254877B2 publication Critical patent/JP3254877B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高級プログラミング言
語で書かれたソースプログラムを、マイクロプロセッサ
が実行可能なプログラムに翻訳するコンパイラにおい
て、コンパイラが翻訳し生成するマイクロプロセッサが
実行可能なプログラム(以下目的プログラムという)を
分岐命令に着目して、高速に実行するように、目的プロ
グラムを配置する方法およびその装置に関するものであ
る。
【0002】
【従来の技術】近年、C言語などの高級言語を、マイク
ロプロセッサが実行可能な目的プログラムに変換するコ
ンパイラの技術として、ハードウエアの資源を有効に利
用し、コンパイラの出力する目的プログラムの最適化が
要求されてきている。その最適化として目的プログラム
の、サイズの縮小化を主眼においた最適化や実行速度を
高速にすることに主眼をおいた最適化がある。
【0003】一般的に目的プログラムの高速実行のため
にマイクロプロセッサはバスを使用しないアイドル周期
を利用した命令の先読み方式を採用している。しかし、
目的プログラムに条件分岐命令が存在した場合、判定条
件の結果により、条件分岐の命令先読み方向と異なる方
向に実行順序が進行した場合、先読みした命令が無効に
なり、命令先読み方向と一致した場合と比べて条件分岐
命令の実行時間が遅くなる。
【0004】また一般にソースプログラムに対して目的
プログラムは実行方向にしたがって一列に記述された形
で出力され、条件文などのように実行方向が複数になる
場合は分岐命令などを駆使して一列に出力される。
【0005】本従来例の処理配置装置について説明する
前に、以下で使用する用語について説明する。
【0006】・実行頻度 ソースプログラムあるいはソースプログラムに対する目
的プログラムが実行された時、ソースプログラム中の一
文あるいは目的プログラムの内の一命令が実行される回
数をその文あるいはその命令に対する実行頻度という。
【0007】条件文に関しては、ソースプログラムある
いは目的プログラムが実行された時、ソースプログラム
あるいは目的プログラム中の条件文の条件が成立する回
数と条件が成立しない回数をそれぞれ条件成立の実行頻
度あるいは条件非成立の実行頻度といい、両方の頻度を
条件文の実行頻度あるいは条件文の実行頻度情報とい
う。
【0008】・単位ブロック ソースプログラムを、条件文に着目し条件文の処理、条
件文以外の処理などの各処理に分割された個々のブロッ
クを単位ブロックという。
【0009】・条件文の単位ブロック 図4はソースプログラム中の条件文の単位ブロックを示
しており、評価式 X≦Y に対して 1 条件成立時には処理actionAに分岐し、 2 条件非成立時には処理actionBに分岐した
後、条件成立時、非成立時に、共通に実行する共通部分
の処理action commonに合流する という構成を有している。この構成を1つの単位とし、
条件文の単位ブロックと定義する。
【0010】・処理配置 分割された個々の処理または単位ブロックを組み合わせ
て一列に並べた処理の配置パターン ・サイズ 目的プログラムのコードサイズをいい、プログラムまた
は単位ブロックあるいは各処理を目的プログラムに翻訳
した時のコード長をいう。
【0011】従来のコンパイラの、条件文に対する目的
プログラムの出力に関して以下に説明する。図3は従来
の処理配置の構成を示すブロック図である。図3におい
て11は入力部でありソースプログラムを入力するもの
である。12は頻度取得部であり、プログラム中の条件
文に対する条件成立時および条件非成立時の実行頻度を
取得するものである。13は処理配置選択部であり、動
的頻度情報から処理配置を選択するものである。14は
目的プログラム生成部であり、13で選択された処理配
置により目的プログラムを生成する。
【0012】図5はマイクロプロセッサのもつ条件分岐
命令の先読みが、条件成立方向に働く場合にコンパイラ
が出力する目的プログラムを、また図6はマイクロプロ
セッサのもつ条件分岐命令の先読みが、条件非成立方向
に働く場合にコンパイラが出力する目的プログラムを表
わしている。図5、および図6において、cmp a,
bは評価式X≦Yに対応する比較命令、Bcc lab
el A、Bcc label Bは図4の評価式X≦
Yに対応する条件分岐命令、action Aは図5に
おける評価式の条件成立時の処理、action Bは
図6における評価式の条件非成立時の処理、jmp l
abel A、jmp label Bはラベル先に無
条件分岐する無条件分岐を示している。cycle T
は条件成立時の条件分岐命令実行サイクル数、cycl
e Fは条件非成立時の条件分岐命令実行サイクル数、
Ptは条件成立の頻度、Pfは条件非成立の頻度(この
時の条件成立、非成立の頻度は目的プログラムでの条件
分岐命令で条件成立か条件非成立かである)、cycl
e Jは無条件分岐命令実行時のサイクル数、cycl
e Aは条件成立時のaction A実行時のサイク
ル数、cycleBは条件非成立時のaction B
実行時のサイクル数を示している。label A、l
abel Bは各処理のラベルであり、分岐命令に記述
されている場合は、条件成立時に分岐命令に記述された
ラベル先に分岐することを示す。(表1)は条件分岐命
令のニーモニックと評価式の評価記号の対応を示す表で
あり、条件分岐命令Bccの文字列「cc」は(表1)
で示す条件分岐命令のニーモニックからbを抜いた文字
列に対応している。つまりBeq,Blt...等と表
現される。(表1)で左から第1列は評価式の評価記号
を、第2列は左の評価記号と排他的な関係にある評価記
号を示す。第3列は第1列に対応したニーモニックであ
り、第4列は第2列に対応したニーモニックを示してい
る。
【0013】
【表1】
【0014】また図5の目的プログラムの構成は ・条件判定命令(cmp a,b)、 ・条件分岐命令(Bcc label A)、 ・条件非成立時に動作する処理(action B)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分に無条件分岐する分岐命令(jmp label
B)、 ・条件成立時に動作する処理(action A)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理(action common)、 ・共通部分の次に実行される処理へ無条件分岐する無条
件分岐命令(jmp label next) の順に構成される。
【0015】図6の構成は図5の構成と比べて、図4の
評価式の評価記号と排他的な関係にある評価記号に対応
したニーモニックを出力し、同時に図4の条件分岐の条
件成立時の処理action Aと条件非成立時の処理
action Bとそれらに対応したラベル labe
l A、label Bを入れ換えた、つまりX≧Yに
対する条件分岐命令の代わりにX<Yに対する条件分岐
命令を生成し(Bcclabel B)、条件分岐命令
の直後、つまり条件非成立時の方に実行頻度の高い処理
action Aを配置した構成となっている。
【0016】図5に対して、図7は条件分岐命令の先読
みが、条件成立方向に働き、条件分岐の分岐が閾値を超
える時、従来のコンパイラが出力する目的プログラムの
図で、 ・比較命令(cmp a,b)、 ・条件分岐命令(Bcc label Z)、 ・無条件分岐命令(jmp label Y)、 ・条件非成立時に動作する処理(action B)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分に無条件分岐する分岐命令(jmp label
B)、 ・条件成立時に動作する処理(action A)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理(action common)、 ・共通部分の処理の次に実行される処理へ無条件分岐す
る無条件分岐命令(jmp label next) の順に構成される。
【0017】従来例を、図に従って説明する。ソースプ
ログラム中に図4のような条件文が含まれていた場合、
一般的にコンパイラは図5のような構成で目的プログラ
ムを出力していた。また条件文の条件成立、非成立の動
的頻度情報を考慮した場合、アセンブラ命令の条件分岐
命令実行時の先読みが条件成立方向に働き、条件成立時
の方が実行サイクル数が小さいマイクロプロセッサの場
合は条件分岐先に実行頻度の高い処理を配置すること
で、つまり図4の条件文でaction Aの方が実行
頻度が高い場合に、図5のような配置が有効であった。
また、条件分岐命令の先読みが条件非成立方向に働き、
条件非成立の方が実行サイクル数が小さいマイクロプロ
セッサの場合、図6のような配置にしていた。また条件
分岐命令で条件分岐命令の直後に配置される処理が閾値
を超えたがために、条件分岐命令のみで分岐先に分岐で
きない場合、図5に対して、図7のように目的プログラ
ムを出力し、図5の条件分岐命令に対して排他的な関係
にある評価記号に対応したニーモニックを出力し、その
直後に閾値を超えることができる無条件分岐命令を配置
していた。またアセンブラ命令の条件分岐命令実行時の
先読みが条件成立方向に働くマイクロプロセッサと条件
非成立時に働くマイクロプロセッサのとでは前者の方は
条件成立時の分岐先アドレスを求めるのにハード的にコ
ストがかかるのに対し、後者の方が条件成立時の分岐先
アドレスが条件分岐命令の次のアドレスで、求めるのが
容易である。
【0018】
【発明が解決しようとする課題】ところが、条件分岐命
令の先読みが条件非成立方向に働くマイクロプロセッサ
の場合、図6のように条件非成立時の処理の後に無条件
分岐命令(jmp label A)が存在し、それが
頻繁に実行されるため、その分だけ実行サイクル数が増
加してしまう。このように、従来の処理配置方法および
その装置においては条件文の条件成立、非成立の動的頻
度情報を考慮した場合、条件分岐命令で条件成立時およ
び条件非成立時の実行サイクル数の大小にうまく適合し
た方法とはなっていないので、うまく適合した方法を見
い出す必要がある。さらに条件分岐命令の先読みが条件
非成立方向に働くマイクロプロセッサの場合に対して、
条件分岐命令の分岐が閾値を超える場合に対しても考慮
する必要がある。
【0019】本発明は、従来の処理配置方法およびその
装置が有していた前記の問題点を改善し、 1 ソースプログラムの条件文に対する条件成立時およ
び条件非成立時の動的頻度情報を考慮し、より実行サイ
クルの小さくなる処理配置方法およびその装置、 2 条件分岐命令の先読み方向に影響されない処理配置
方法およびその装置、 3 様々な条件分岐に柔軟に対応可能な処理配置方法お
よびその装置 を提供することを目的とする。
【0020】
【課題を解決するための手段】本発明は、前記の目的を
達成するために、ソースプログラムを入力する入力部、
ソースプログラムから単位ブロックに分割し単位ブロッ
ク処理順序を決定する単位ブロック処理方法決定部、単
位ブロック処理方法決定部で決定された順序にしたがっ
て処理すべき単位ブロックを取得する単位ブロック取得
部、条件文の単位ブロックに対する条件成立時および、
条件非成立時の頻度を取得する頻度取得部、ソースプロ
グラム中の条件文における条件成立時の処理のサイズ、
および条件非成立時の処理のサイズ、条件成立、非成立
にかかわらず共通に動作する共通処理のサイズを測定す
るサイズ測定部、動的頻度情報と条件文の処理のサイズ
情報から処理配置を選択する処理配置選択部、処理配置
選択部によって選択された処理配置に対して総実行サイ
クル数を評価する評価部、評価部の結果に基づいて目的
プログラムを生成する目的プログラム生成部を備えたこ
とを特徴とする処理配置方法およびその装置を構成す
る。
【0021】
【作用】本発明の処理配置方法およびその装置は前記し
た構成により、頻度取得部がプログラム中の条件文に対
する条件成立、非成立の頻度を取得し、またはサイズ測
定部が条件文の条件成立、非成立時の処理のサイズを測
定し、それらの情報をもとに最適な処理配置を選択する
ことによって実行サイクルの小さい高速実行可能な目的
プログラムを生成することを可能とするものである。
【0022】
【実施例】本実施例の処理配置装置について説明する前
に、以下で使用する用語について説明する。
【0023】以下図面に基づいて本発明の一実施例につ
いて説明する。図1は本発明の一実施例のブロック図を
示す。図1において1は入力部でありソースプログラム
を入力するものである。2は単位ブロック処理方法決定
部で入力部1で入力されたソースプログラムを単位ブロ
ックに分割し、分割された単位ブロックの処理順序を決
定する。3は単位ブロック取得部であり、単位ブロック
処理方法決定部で決定された順序にしたがって処理すべ
き単位ブロック取得するものである。4は頻度取得部で
あり、プログラム中の条件文に対する条件成立時および
条件非成立時の実行頻度を取得するものである。5はサ
イズ測定部であり、ソースプログラム中の条件文におけ
る条件成立時の処理のサイズ、および条件非成立時の処
理のサイズ、条件成立、非成立にかかわらず共通に動作
する共通部分のサイズを測定するものである。6は処理
配置選択部であり、動的頻度情報と条件文の処理のサイ
ズ情報から処理配置を選択するものである。7は評価部
であり、処理配置選択部6によって選択された処理配置
に対して総実行サイクル数を評価するものである。8は
目的プログラム生成部であり、評価部7の結果に基づい
て目的プログラムを生成する。
【0024】図8は入力されるソースプログラムと、ソ
ースプログラム単位ブロック分割方法の図であり、A
1、B1、C1、D1、A2、B2、...は各単位ブ
ロック(処理)を示し、各単位ブロックのコードサイズ
(size D1、size B1、size D2、
size A2、size B2、size C2、s
ize D11、size A11、size B1
1、size D12、size A12、size
B12、size C12)とサイクル数(cycle
D1、cycle B1、cycle D2、cyc
le A2、cycle B2、cycle C2、c
ycle D11、cycle A11、cycle
B11、cycle D12、cycle A12、c
ycle B12、cycle C12)を図のように
定義し、条件文の単位ブロックの条件成立時Ptおよび
条件非成立時Pfの頻度をそれぞれ(Pa1,Pb
2)、(Pa2,Pb2)、(Pa11,Pb11)、
(Pa12,Pb12)を定義する。
【0025】前述のように構成された本実施例の処理配
置装置の動作を以下に説明しその処理手順を図2に示
す。 (1)ステップs1は入力部1でソースプログラムが入
力される。 (2)ステップs2は単位ブロック処理方法決定部2
で、入力部1で入力されたソースプログラムから単位ブ
ロックに分割し、分割された単位ブロックの処理順序を
決定する。単位ブロックとは単位ブロック処理方法決定
部2で分割されるそれぞれの処理を単位ブロックと呼
び、その単位ブロックの分割方法を図8に従って説明す
る。
【0026】ソースプログラムは一般に、条件文前単位
ブロックと条件文単位ブロックに分割される、条件文前
単位ブロックはプログラムの始めから最初の条件文が現
われる直前までの処理を指し、条件文単位ブロックは条
件文が最初に現われた地点から、プログラムの最後まで
の処理を示す。そして条件文単位ブロックは条件成立時
の処理A1と条件非成立時の処理B1、条件成立時また
は条件非成立時の処理の後に実行する共通部分の処理C
1のみに分割される。これらを親の単位ブロックA1、
親の単位ブロックB1、親の単位ブロックC1とする。
そしてそれぞれの親の単位ブロックA1、B1、C1は
条件文前単位ブロックと条件文処理に分割され、その中
でも条件成立時の処理A1または条件非成立時の処理B
1の中にある単位ブロックは、条件文の単位ブロックに
対し、子の単位ブロックであり、A1またはB1の後に
実行する共通部分の処理C1の中にある単位ブロックは
i1の条件文単位ブロックに対して同レベルの単位ブロ
ックである。A1は子の条件文前単位ブロックD11と
子の条件文単位ブロックi11に分割され、条件文単位
ブロックi11はi11の条件文に対して条件成立時の
処理A11、条件非成立時の処理B11、A11、B1
1の次に処理する共通部分の処理部C11に分割され
る。C11はi12に対して条件文単位ブロックD12
と条件文単位ブロックi12に分割され、C11の中に
ある単位ブロックは条件文単位ブロックi11と同レベ
ルの単位ブロックである。以上のようにそれぞれの単位
ブロックは親の単位ブロックから子の単位ブロック、孫
の単位ブロック...へと分割されていく。
【0027】次に分割された単位ブロックから処理すべ
き単位ブロックの取得順序を説明する。取得順序は、先
ず分割された単位ブロックのうち、同レベルの単位ブロ
ックが存在すれば、ソースプログラムの最後に近い方の
単位ブロックから先に評価し、処理配置を決める。また
取得すべき単位ブロックの中に子の単位ブロックが存在
すれば、その単位ブロックを先に評価し処理配置を決め
る。 (3)ステップs3は単位ブロック取得部3であり、単
位ブロック処理方法決定部で決定された順序にしたがっ
て処理すべき単位ブロックを取得する。 (4)ステップs4は頻度取得部4で、単位ブロック取
得部3で取得された単位ブロックのうち、条件文の単位
ブロックに対して条件成立時および条件非成立時の頻度
(Pa、Pb)を取得する。実行頻度はソースプログラ
ムの処理を動的にシミュレーションして統計的に求め
る。条件成立時および条件非成立時の頻度(Pt、P
f)のかわりに条件成立および条件非成立の確率(P
t、Pf)を与える。またはその他理論的に算出して求
めるなどの方法があるが、本発明の主眼ではないので省
略する。(この場合の条件成立、非成立はソースプログ
ラムの条件文の条件成立、非成立であり、それぞれ図5
でのaction Aの実行頻度、action Bの
実行頻度である)。 (5)ステップs5はサイズ測定部5でソースプログラ
ム中の条件文の条件成立時に実行される処理と条件非成
立時に実行される処理のサイズを測定する。測定箇所は
図5の条件文のactionA、actionB、ac
tion common+jmp label nex
t(共通部分の処理の次に実行される処理へ無条件分岐
する無条件分岐命令)に相当する目的プログラムのサイ
ズについて測定する。
【0028】ここで共通部分の次に実行される処理とは
現在対象となっている単位ブロックの後に同レベルの単
位ブロックが存在すれば同レベルの単位ブロックの処理
であり、同レベルの単位ブロックが存在しないとき、対
象となっている単位ブロックに親の単位ブロックが存在
すれば親の単位ブロックの処理を示す。 (6)ステップs6は処理配置選択部5で(5)で得ら
れたサイズ情報から該当する処理配置を選択する。
【0029】選択方法はまず、得られたサイズ情報から
actionA+action common+jmp
label next(次の単位ブロックへ無条件分
岐する無条件分岐命令)、action B+acti
on common+jmplabel next(共
通部分の処理の次に実行される処理へ無条件分岐する無
条件分岐命令)に対してサイズを計算し、その結果から
(表2)のどのケースに相当するかを検出する。(表
2)は計算結果からそのサイズが閾値内であるか、閾値
外であるかにより、該当するケースとの関係を示した表
である。
【0030】
【表2】
【0031】図9は目的プログラム生成において選択候
補となる処理配置の図(その1)であり、次に図9のど
の処理配置にあてはまるかを探す。
【0032】処理配置A1は ・比較命令(cmp a,b)、 ・条件分岐命令(Bcc label y)、 ・条件非成立時に動作する処理を配置する配置場所(s
pace X)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理に無条件分岐する無条件分岐命令、 ・条件分岐命令で成立時に動作する処理を配置する配置
場所(space Y)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理(action common)、 ・共通部分の処理の次に実行される処理へ無条件分岐す
る無条件分岐命令(jmp label next) の順に構成されるものである。
【0033】処理配置A2は処理配置A1に対し、条件
分岐命令(Bcc label Y)の分岐範囲が閾値
外であれば、条件分岐命令(Bcc label Y)
を反転させて変換(Bcc label Z、jmp
label Y)することにより、 ・比較命令(cmp a,b)、 ・条件分岐命令(Bcc label Z)、 ・無条件分岐命令(jmp label Y)、 ・処理配置A1のspace X に配置される処理を
配置する配置場所(space X)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理に無条件分岐する無条件分岐命令(jmp l
abel X)、 ・処理配置A1のspace Y に配置される処理を
配置する配置場所(space Y)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理(action common)、 ・共通部分の処理の次に実行される処理へ無条件分岐す
る無条件分岐命令(jmp label next) の順に構成されるものである。
【0034】処理配置B1は ・比較命令(cmp a,b)、 ・条件分岐命令(Bcc label Y)、 ・条件非成立時に動作する処理を配置する配置場所、条
件成立、非成立にかかわらず共通に動作する共通部分の
処理(action common)、 ・共通部分の処理の次に実行される処理へ無条件分岐す
る無条件分岐命令(jmp label next)、 ・条件分岐命令で成立時に動作する処理を配置する配置
場所(space Y)、 ・条件成立、非成立にかかわらず共通に動作する共通部
分の処理に無条件分岐する無条件分岐命令(jmp l
abel X)、 の順に構成されるものである。
【0035】処理配置B2は条件分岐命令の分岐範囲が
閾値外になる時、処理配置A2と同様に条件分岐命令を
変換し、他は処理配置B1と同様の構成をした処理配置
である。
【0036】処理配置Aに関しては、space Xに
入りうる処理のサイズによって閾値内であれば処理配置
A1を、閾値外であれば処理配置A2が選択可能であ
る。また、space Xに入りうる処理とactio
n common のサイズの合計が閾値内であれば処
理配置B1を、閾値外であれば処理配置B2が選択可能
である。そしてそれぞれの総実行サイクル数は(表3)
のように表される。
【0037】
【表3】
【0038】(表2)より、図9の処理配置を選択する
方法は、処理配置A1かA2かを選択するには、(表
2)の左から第1列、第2列を参照すればよく、処理配
置B1かB2かを選択するには、第3列、第4列を参照
すればよい。また図9のspace Xに actio
n A か action B を配置するかは、(表
2)の各列のT(真)かF(偽)と関係がある。つま
り、 ・AがT(真)の時、処理配置A1でspace X
に action Aを配置することができ、 ・AがF(偽)の時、処理配置A2でspace X
に action Aを配置することができ処理配置A
1は選択できない。
【0039】・BがT(真)の時、処理配置A1でsp
ace X に action Bを配置することがで
き、 ・BがF(偽)の時、処理配置A2でspace X
に action Bを配置することができ処理配置A
1は選択できない。
【0040】・A+CがT(真)の時、処理配置B1で
space X に actionAを配置することが
でき、 ・A+CがF(偽)の時、処理配置B2でspace
X に actionA を配置することができ処理配
置A1は選択できない。
【0041】・B+CがT(真)の時、処理配置B1で
space X に actionB を配置すること
ができ、 ・B+CがF(偽)の時、処理配置B2でspace
X に actionB を配置することができ処理配
置A1は選択できない。 これらの規則にしたがって可能な処理配置を選択する。
【0042】例えば(表2)よりcase aが選択さ
れた場合、処理配置Aに関してaction A、ac
tion Bともに閾値内なのでspace Xにac
tion A、またはaction Bをあてはめるこ
とができ、処理配置A1でspace Xにactio
n Aがあてはまる場合とaction Bがあてはま
る場合と2処理配置が選択可能である。また、acti
on A+action commonとaction
B+action commonがともに閾値内であ
るので処理配置B1でspace Xにaction
Aがあてはまる場合とaction Bがあてはまる場
合の2処理配置があり、計4つの処理配置の選択が可能
である。
【0043】またcase bが選択された場合、処理
配置Aに関してaction A、action Bと
もに閾値内なので同様にspace Xにaction
A、またはaction Bをあてはめることがで
き、処理配置A1でspaceXにaction Aが
あてはまる場合とaction Bがあてはまる場合と
2処理配置が選択可能である。また、action A
+action commonのサイズは閾値内である
ので処理配置B1でspace Xにaction A
があてはまる場合、action B+action
commonは閾値外であるので処理配置B2でspa
ce Xにaction Bがあてはまる場合が選択可
能である。
【0044】図10は本発明における目的プログラム生
成において選択候補となる処理配置の図(その2)で上
記の方法によりspace Xにaction A ま
たはaction B があてはまるすべての場合につ
いての処理配置を図示したものである。また(表5)は
(表2)で選択されるcaseと図10での選択可能な
処理配置の関係を示した表である。
【0045】
【表4】
【0046】
【表5】
【0047】(7)ステップs7は評価部6で(5)で
選択された処理配置に対して、頻度情報と実行サイクル
数から(数1)(数2)式をもちいて総実行サイクル数
を評価する。
【0048】
【数1】
【0049】
【数2】
【0050】(数1)(数2)において、条件成立時の
条件分岐命令実行サイクル数cycle T、条件非成
立時の条件分岐命令実行サイクル数cycle Fは条
件分岐命令の命令先読み方向によって決まり、命令先読
みが条件成立方向に働く場合は、条件成立時の条件分岐
命令実行サイクル数cycle Tの方が小さく、命令
先読みが条件非成立に働く場合は、条件非成立時の条件
分岐命令実行サイクル数cycle Fの方が小さい。
【0051】(表3)は選択されうる処理配置について
の総実行サイクル数の表であり、これらの評価式が最小
となるものを処理配置として決定する。この時(表3)
に従ってspace Xにあてはまる処理の実行頻度P
x、space Yにあてはまる処理の実行頻度Pyを
目的プログラムの条件分岐命令の条件成立、非成立の頻
度(Pt、Pf)に対応させる。ソースプログラムの条
件文の条件成立、非成立の頻度(Pa、Pb)つまりa
ction A の実行頻度、actionB実行頻度
はspace Xにあてはまる処理の実行頻度Px、s
pace Yにあてはまる処理の実行頻度Pyのいずれ
かに対応し、例えば space Xにaction
Aがあてはまれば Px=Pa である。
【0052】(表4)は(表3)に基づいて(表5)の
処理配置のそれぞれに対して具体的な評価式を書き下し
たものである。 (8)ステップs8は、目的プログラム生成部7で
(7)で決定された処理配置について目的プログラムを
生成する。 (9)以後、(3)から(8)までをすべての単位ブロ
ックに対して目的プログラムを生成し終えるまで繰り返
す。
【0053】以上のように動作する本実施例の処理配置
装置における具体的な動作を以下に説明する。 (11)図8のようなソースプログラムが入力される。
(ステップS1) (12)入力部1で入力されたソースプログラムから単
位ブロックに分割し、処理すべき単位ブロックを取得す
る。ソースプログラムは ・条件文以外の単位ブロックD1と条件文の単位ブロッ
クi1を親の単位ブロック、 ・条件文以外の単位ブロックD2と条件文の単位ブロッ
クi2を親と同レベルの単位ブロック、 i1の子の単位ブロックとして、 ・条件文以外の単位ブロックD11、 ・条件文の単位ブロックi11、 D11、i11と同レベルの単位ブロックとして ・条件文以外の単位ブロックD12、 ・条件文の単位ブロックi12 に分割する。
【0054】次に単位ブロックの処理順序を決定する。
処理順序はD2、i2、D12、i12、D11、i1
1、D1、i1の順に処理を行なう。(ステップS2) (13)まず単位ブロックD2、i2を取得し、これら
の単位ブロックについて処理を行なう。このとき各単位
ブロックに冗長な分岐命令が存在する時はこれを削除す
る。(ステップS3) (14)条件文の単位ブロックi2について条件成立時
および条件非成立時の頻度(Pa2=8、Pb2=3)
を取得する。(ステップs4)それぞれPa2は処理A
2 の実行頻度、Pb2は 処理B2の実行頻度に対応
する (15)条件文の単位ブロックの中の処理A2、B2、
C2+jmp label next(共通部分の処理
の次に実行される処理へ無条件分岐する無条件分岐命
令)についてサイズを測定する。(ステップS5)。サ
イズは図4より A2=12、 B2=20、 C2+jmp label next(共通部分の処理
の次に実行される処理へ無条件分岐する無条件分岐命
令)=33 となる。 (16)続いて、ステップS5で得られたサイズ情報か
ら該当する処理配置を選択する。(ステップS6)その
方法を以下に示す。まずステップS5で得られたサイズ
情報からA2+C2+jmp label next
(共通部分の処理の次に実行される処理へ無条件分岐す
る無条件分岐命令)、B2+C2+jmp label
next(共通部分の処理の次に実行される処理へ無
条件分岐する無条件分岐命令)に対してサイズを計算す
ると、以下のようになる。
【0055】・A2+C2+jmp label ne
xt(共通部分の処理の次に実行される処理へ無条件分
岐する無条件分岐命令)=45 ・B2+C2+jmp label next(共通部
分の処理の次に実行される処理へ無条件分岐する無条件
分岐命令)=53 次にこれらの結果と(15)の結果により(表2)のど
のケースにあてはまるかを検出する。この場合case
aになる。
【0056】(表2)で選択されたケースに対して選択
可能な処理配置を(表5)の中から探しだす。この場
合、処理配置A12、処理配置A11、処理配置B1
2、処理配置B11が選択可能である。 (17)(16)で選択された処理配置に対して、(表
4)にしたがってソースプログラムの条件文の条件成
立、非成立の頻度(Pa、Pb)を目的プログラムの条
件分岐命令の条件成立、非成立の頻度(Pt、Pf)に
対応させ、総実行サイクル数を計算し(ステップs7)
最小となった処理配置を選択する。総実行サイクルにつ
いて計算すると ・処理配置A11での総実行サイクル数=(cycle
T + cycle A2)Pa2+(cycle
F+cycle B2 +cycle J)Pb2=
340 ・処理配置A12での総実行サイクル数=(cycle
T + cycle B2)Pb2+(cycle
F+cycle A2 +cycle J)Pa2=
345 ・処理配置B11での総実行サイクル数=(cycle
T + cycle A2 + cycle J )
Pa2+(cycle F+cycle B2)Pb2
= 380 ・処理配置B12での総実行サイクル数=(cycle
T + cycle B2 + cycle J)P
b2+(cycle F+cycle A2)Pa2=
335 以上により処理配置A11が採用される。 (18)条件文の単位ブロックに対して(17)で決定
された処理配置について目的プログラムを生成する。
(ステップs8)その時その配置に適合させるために、
(表1)に基づいて条件文の評価式は、必要に応じても
との図4のソースプログラム中に示される条件文の単位
ブロックに対する評価式の評価記号と排他的な関係にあ
る評価記号に対応した、条件分岐命令のニーモニックを
出力する。図11は本発明の実施例における単位ブロッ
クD2、i2に対する目的プログラムの図であり、ステ
ップS8によって出力された結果である。 (19)ステップS3にもどり、次のD12、i12の
単位ブロックについて、ステップS8までの手順で同様
に処理を行なう。i12の単位ブロックでは実行頻度が
Pa12=2,Pb12=9、サイズがsize A1
2=10,size B12=20,size C12
=10,size A12+C12=23,size
B12+C12=33より(表2)でcase aがあ
てはまり、処理配置A11、A12、B11、B12が
選択可能である。それぞれについて総実行サイクルを計
算するとA11=431、A12=424、B11=4
17、B12=438となり処理配置B11が採用され
る。図12は本発明の実施例における単位ブロックD1
2、i12に対する目的プログラムの図である。
【0057】同様にi11の単位ブロックでは ・実行頻度がPa11=4,Pb11=5、 ・サイズがsize A11=36,size B11
=41,size C11=73,size A11+
C11=109,size B11+C11=114よ
り(表2)でcase aがあてはまり、処理配置A1
1、A12、B11、B12が選択可能である。それぞ
れについて総実行サイクルを計算するとA11=62
3、A12=622、B11=621、B12=624
となり処理配置B11が採用される。図13は本発明の
実施例における単位ブロックD11、i11に対する目
的プログラムの図である。
【0058】同様にi1の単位ブロックでは ・実行頻度がPa1=10,Pb1=1、 ・サイズがsize A1=164,size B1=
30,size C1=70,size A1+C1=
234,size B1+C1=100より(表2)で
case aがあてはまり、処理配置A11、A12、
B11、B12が選択可能である。それぞれについて総
実行サイクルを計算するとA11=10963、A12
=11005、B11=11001、B12=1096
7となり処理配置A11が採用される。図14は本発明
の実施例におけるソースプログラムに対する最終的に出
力される目的プログラムの図である。
【0059】なお、本実施例においては頻度取得部でソ
ースプログラムに含まれる条件文の単位ブロックの条件
成立時および条件非成立時の頻度(Pt、Pf)を取得
するとしたが、ユーザーがオプションとして与える方法
と、動的頻度を含んだプロファイラ情報から取得すると
してもよい。
【0060】本実施例で共通部分の処理の次に実行され
る処理への無条件分岐命令(jmp(次の分岐先のラベ
ル))としているのを必要に応じて復帰命令(rts)
としてもよい。
【0061】また、実施例では、条件成立の処理を共通
部分の処理の次に実行される処理への無条件分岐命令あ
るいは復帰命令の後に配置していたが、必ずしも共通部
分の処理の次に実行される処理への無条件分岐命令ある
いは復帰命令の後でなく、特定の適切な領域に配置して
もよい。
【0062】また、単位ブロック分割過程で実行頻度、
サイズ情報を同時に取得するとしてもよい。また、条件
分岐命令の分岐が閾値内外を問わず一定の場合、あるい
は必ず閾値内または閾値外のどちらかに固定される場合
は、処理配置選択部で選択される処理配置は条件分岐命
令の命令先読み方向により、命令先読みが条件成立方向
に働く場合は図9の処理配置A1、図10の処理配置A
11,A12、命令の先読みが条件非成立方向に働く場
合は図9のB1、図10の処理配置B11,B12に限
定され、さらに条件成立、非成立の頻度によって図10
の処理配置のA11かA12のどちらか、あるいは図1
0の処理配置のB11かB12のどちらかに選択され
る。
【0063】さらに実施例で示したマイクロプロセッサ
だけでなくその他の様々なマイクロプロセッサに対して
も同様に適用できる。
【0064】
【発明の効果】本発明の処理配置方法およびその装置は
前記した構成により、動的頻度情報を考慮した場合、ソ
ースプログラム中の条件文に対して、比較命令、条件分
岐命令、条件非成立時に動作する処理、条件成立、非成
立にかかわらず共通に動作する共通部分の処理、次の単
位ブロックへ無条件分岐する無条件分岐命令または復帰
命令、条件成立、非成立にかかわらず共通に動作する共
通部分の処理に無条件分岐する無条件分岐命令、条件分
岐命令で成立時に動作する処理、条件成立、非成立にか
かわらず共通に動作する共通部分の処理の順に構成され
る処理配置を提案することで条件分岐命令実行時で条件
非成立時の方が実行サイクルが小さい場合おいても最適
な目的プログラムを生成できる。また、条件文の条件成
立時、非成立時の処理と条件成立、非成立にかかわらず
共通に動作する共通部分の処理のサイズを測定し、条件
分岐に対する2形態の処理配置を評価することによっ
て、条件分岐の命令先読み方向に対し高速実行可能な目
的プログラムを生成できる。また、ソースプログラムを
複数の単位ブロックに分割し、優先順序にしたがって目
的プログラムを生成することによって、いろいろな条件
文に対して高速実行可能な目的プログラムを生成でき
る。
【図面の簡単な説明】
【図1】本発明の一実施例の処理配置装置の構成を示す
ブロック図
【図2】本発明の一実施例の処理配置装置の処理手順の
フロー図
【図3】従来の処理配置装置の構成を示すブロック図
【図4】ソースプログラム中の条件文の単位ブロックの
【図5】マイクロプロセッサのもつ条件分岐命令の先読
みが、条件成立方向に働く時の従来のコンパイラが出力
する目的プログラムの図
【図6】マイクロプロセッサのもつ条件分岐命令の先読
みが、条件非成立方向に働く時の従来のコンパイラが出
力する目的プログラムの図
【図7】条件分岐命令の先読みが、条件成立方向に働
き、条件分岐の分岐が閾値を超える時、従来のコンパイ
ラが出力する目的プログラムの図
【図8】入力されるソースプログラムと単位ブロック分
割方法の図
【図9】本発明における目的プログラム生成において選
択候補となる処理配置の図(その1)
【図10】本発明における目的プログラム生成において
選択候補となる処理配置の図(その2)
【図11】本発明の実施例における単位ブロックD2、
i2に対する目的プログラムの図
【図12】本発明の実施例における単位ブロックD1
2、i12に対する目的プログラムの図
【図13】本発明の実施例における単位ブロックD1
1、i11に対する目的プログラムの図
【図14】本発明の実施例におけるソースプログラムに
対する最終的に出力される目的プログラムの図
【符号の説明】
1 入力部 2 単位ブロック処理方法決定部 3 単位ブロック取得部 4 頻度取得部 5 サイズ測定部 6 処理配置選択部 7 評価部 8 目的プログラム生成部
フロントページの続き (56)参考文献 特開 平1−258132(JP,A) 特開 平1−118931(JP,A) 特開 昭59−60640(JP,A) 特開 平6−175856(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/45

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンパイラの条件文に対するコード生成
    に関して、ソースプログラムを入力する入力部と、前記
    入力部から入力されるソースプログラムに対し、ソース
    プログラム中の条件文が実行された時、条件が成立する
    頻度と条件が非成立する頻度を取得する頻度取得部と、
    前記頻度取得部が取得する条件非成立の頻度があらかじ
    め定められた値より大きい場合に、 (a)比較命令、 (b)条件分岐命令、 (c)条件非成立時に動作する処理、 (d)条件成立、条件非成立にかかわらず共通に動作する
    共通処理、 (e)ソースプログラム中の条件文の直後の処理へ分岐す
    る無条件分岐命令または復帰命令、 (f)条件分岐命令で成立時に動作する処理、 (g)条件成立、条件非成立にかかわらず共通に動作する
    共通処理に無条件分岐する無条件分岐命令 の順に配置するように目的プログラムを生成する目的プ
    ログラム生成部とを備えたことを特徴とする処理配置装
    置。
  2. 【請求項2】 コンパイラの条件文に対するコード生成
    に関して、ソースプログラムを入力する入力ステップ
    と、前記入力ステップから入力されるソースプログラム
    に対し、ソースプログラム中の条件文が実行された時、
    条件が成立する頻度と条件が非成立する頻度を取得する
    頻度取得ステップと、前記頻度取得ステップが取得する
    条件非成立の頻度があらかじめ定められた値より大きい
    場合に、 (a)比較命令、 (b)条件分岐命令、 (c)条件非成立時に動作する処理、 (d)条件成立、条件非成立にかかわらず共通に動作する
    共通処理、 (e)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 (f)条件分岐命令で成立時に動作する処理、 (g)条件成立、条件非成立にかかわらず共通に動作する
    共通処理に無条件分岐する無条件分岐命令 の順に配置するように目的プログラムを生成する目的プ
    ログラム生成ステップとを備えたことを特徴とする処理
    配置方法。
  3. 【請求項3】コンパイラの条件文に対するコード生成に
    関して、ソースプログラムを入力する入力部と、前記入
    力部から入力されるソースプログラムに対し、ソースプ
    ログラム中の条件文が実行された時、条件が成立する頻
    度と条件が非成立する頻度を取得する頻度取得部と、前
    記頻度取得部が取得する条件成立および条件非成立の頻
    度と条件分岐の命令先読み方向によって、 (a)比較命令、 (b)条件分岐命令、 (c)条件非成立時に動作する処理、 (d)条件成立、条件非成立にかかわらず共通に動作する
    共通処理 (e)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 (f)条件分岐命令で成立時に動作する処理 (g)条件成立、条件非成立にかかわらず共通に動作する
    共通処理へ分岐する無条件分岐命令 の順に構成される目的プログラム、 または (h)比較命令、 (i)条件分岐命令 (j)条件非成立時に動作する処理 (k)条件成立、条件非成立にかかわらず共通に動作する
    共通処理に無条件分岐する無条件分岐命令、 (l)条件分岐命令で成立時に動作する処理 (m)条件成立、条件非成立にかかわらず共通に動作する
    共通処理 (n)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 の順に構成される目的プログラムとを選択する処理配置
    選択部と、前記処理配置選択部の結果によって目的プロ
    グラムを生成する目的プログラム生成部とを備えたこと
    を特徴とする処理配置装置。
  4. 【請求項4】コンパイラの条件文に対するコード生成に
    関して、 ソースプログラムを入力する入力ステップと、 前記入力ステップから入力されるソースプログラムに対
    し、ソースプログラム中の条件文が実行された時、条件
    が成立する頻度および条件が非成立する頻度を取得する
    頻度取得ステップと、 前記頻度取得ステップで取得する条件成立および条件非
    成立の頻度と条件分岐の命令先読み方向によって、 (a)比較命令、 (b)条件分岐命令、 (c)条件非成立時に動作する処理、 (d)条件成立、条件非成立にかかわらず共通に動作する
    共通処理 (e)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 (f)条件分岐命令で成立時に動作する処理 (g)条件成立、条件非成立にかかわらず共通に動作する
    共通処理へ分岐する無条件分岐命令 の順に構成される目的プログラム、 または (h)比較命令、 (i)条件分岐命令 (j)条件非成立時に動作する処理 (k)条件成立、条件非成立にかかわらず共通に動作する
    共通処理に無条件分岐する無条件分岐命令、 (l)条件分岐命令で成立時に動作する処理 (m)条件成立、条件非成立にかかわらず共通に動作する
    共通処理 (n)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 の順に構成される目的プログラムとを選択する処理配置
    選択ステップと、 前記処理配置選択ステップの結果によって目的プログラ
    ムを生成する目的プログラム生成ステップとを備えたこ
    とを特徴とする処理配置方法。
  5. 【請求項5】コンパイラにおける条件文に対するコード
    生成に関して、ソースプログラムを入力する入力部と、 前記入力部から入力されるソースプログラムに対し、ソ
    ースプログラム中の条件文が実行された時、条件が成立
    する頻度と条件が非成立する頻度を取得する頻度取得部
    と、 条件文の条件成立時および条件非成立時の処理と条件成
    立および条件非成立にかかわらず共通に動作する共通処
    理のコードサイズを測定するサイズ測定部と、 前記頻度取得部から得られる条件成立および条件非成立
    の頻度と前記サイズ測定部から得られる条件文の処理の
    コードサイズから (a)比較命令、 (b)条件分岐命令、 (c)条件非成立時に動作する処理、 (d)条件成立、条件非成立にかかわらず共通に動作する
    共通処理 (e)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 (f)条件分岐命令で成立時に動作する処理 (g)条件成立、条件非成立にかかわらず共通に動作する
    共通処理へ分岐する無条件分岐命令 の順に構成される処理配置 または (h)比較命令、 (i)条件分岐命令 (j)条件非成立時に動作する処理 (k)条件成立、条件非成立にかかわらず共通に動作する
    共通処理に無条件分岐する無条件分岐命令、 (l)条件分岐命令で成立時に動作する処理 (m)条件成立、条件非成立にかかわらず共通に動作する
    共通処理 (n)ソースプログラム中の条件文の直後の処理へ無条件
    分岐する無条件分岐命令または復帰命令、 の順に構成される処理配置を選択する処理配置選択部
    と、 前記処理配置選択部によって選択された処理配置に対し
    て総実行サイクル数を評価する評価部と、 前記評価部の結果に基づいて目的プログラムを生成する
    目的プログラム生成部とを備えたことを特徴とする処理
    配置装置。
  6. 【請求項6】コンパイラにおける条件文に対するコード
    生成に関して、ソースプログラムを入力する入力ステッ
    プと、 前記入力ステップから入力されるソースプログラムの条
    件文に対し条件成立時および条件非成立時の実行頻度情
    報を取得する頻度取得ステップと、 条件文の条件成立時および条件非成立時の処理と条件成
    立および条件非成立にかかわらず共通に動作する共通処
    理のサイズを測定するサイズ測定ステップと、前記頻度
    取得ステップから得られる実行頻度情報と前記サイズ測
    定部から得られる条件文の処理のサイズ情報から処理配
    置を選択する処理配置選択ステップと、前記処理配置選
    択ステップによって選択された処理配置に対して総実行
    サイクル数を評価する評価ステップと、 前記評価ステップの結果に基づいて目的プログラムを生
    成する目的プログラム生成ステップとを備えたことを特
    徴とする処理配置方法。
  7. 【請求項7】ソースプログラムを、 (a)プログラムの始めから最初の条件文が現われる直前
    までの処理を示す条件文前処理と、 (b)条件文が最初に現われた地点から、プログラムの最
    後までの処理を示す条件文処理 に分割し、条件文処理は(c)条件成立時の処理、(d)条件
    非成立時の処理、(e)条件成立時または条件非成立時の
    処理の後に実行する共通に動作する共通処理に分割し、
    前記条件成立時の処理、条件非成立時の処理、条件成立
    時または条件非成立時の処理の後に実行する共通に動作
    する共通処理を、さらに子の条件文前処理と子の条件文
    処理に分割することを繰り返し、分割された各々の処理
    に対し (x)親どうしの単位ブロックが存在すれば、ソースプ
    ログラムの最後に近い方の単位ブロックの順序を先 (y)取得すべき単位ブロックの中に子の単位ブロック
    が存在すれば、その単位ブロックの順序を先 という規則にしたがって評価し処理配置を決める順序を
    決定する単位ブロック処理方法決定部と、 単位ブロック処理方法決定部で決められた順序に従って
    単位ブロックを取得する単位ブロック取得部を有し、単
    位ブロック取得部で取得した単位ブロックをソースプロ
    グラム中の最小条件文として目的プログラムを生成する
    ことを特徴とする請求項1、請求項3、または請求項5
    記載の処理配置装置。
  8. 【請求項8】ソースプログラムを、 (a)プログラムの始めから最初の条件文が現われる直前
    までの処理を示す条件文前処理と、 (b)条件文が最初に現われた地点から、プログラムの最
    後までの処理を示す条件文処理 に分割し、条件文処理は (c)条件成立時の処理、 (d)条件非成立時の処理、 (e)条件成立時または条件非成立時の処理の後に実行す
    る共通に動作する共通処理 に分割し、前記条件成立時の処理、条件非成立時の処
    理、条件成立時または条件非成立時の処理の後に実行す
    る共通に動作する共通部分の処理を、さらに子の条件文
    前処理と子の条件文処理に分割することを繰り返し、分
    割された処理の優先順序を決定する単位ブロック処理方
    法決定ステップと、 単位ブロック処理方法決定ステップで決められた順序に
    従って単位ブロックを取得する単位ブロック取得ステッ
    プ を有し、単位ブロック取得ステップで取得した単位ブロ
    ックをソースプログラム中の最小条件文として目的プロ
    グラムを生成することを特徴とする請求項2、請求項
    4、または請求項6記載の処理配置方法。
JP01931994A 1994-02-16 1994-02-16 処理配置装置および方法 Expired - Fee Related JP3254877B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01931994A JP3254877B2 (ja) 1994-02-16 1994-02-16 処理配置装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01931994A JP3254877B2 (ja) 1994-02-16 1994-02-16 処理配置装置および方法

Publications (2)

Publication Number Publication Date
JPH07230384A JPH07230384A (ja) 1995-08-29
JP3254877B2 true JP3254877B2 (ja) 2002-02-12

Family

ID=11996094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01931994A Expired - Fee Related JP3254877B2 (ja) 1994-02-16 1994-02-16 処理配置装置および方法

Country Status (1)

Country Link
JP (1) JP3254877B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110709814A (zh) * 2017-06-02 2020-01-17 三菱电机株式会社 程序代码生成装置和程序代码生成程序

Also Published As

Publication number Publication date
JPH07230384A (ja) 1995-08-29

Similar Documents

Publication Publication Date Title
JP5551262B2 (ja) バイナリプログラムを動的にパラレル化するためのコンテクストセンシティブなスライス処理
US8839210B2 (en) Program performance analysis apparatus
CN111104335B (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
JPH0695311B2 (ja) コード最適化方法
KR100226233B1 (ko) 컴파일러
JP2005216177A (ja) コンフィグラブル・プロセッサの設計装置、設計方法、ライブラリの最適化方法、プロセッサ、及びプロセッサを備えた半導体装置の製造方法
JPH06324881A (ja) メモリデータの重なり判定機能を備えたコンパイラ装置
US20040015918A1 (en) Program optimization method and compiler using the program optimization method
JP2004288163A (ja) 代入ステートメントのリダクション変数の検出方法、システムおよびプログラム製品
US6292937B1 (en) Program conversion device for translating an object-oriented language source program
JP3254877B2 (ja) 処理配置装置および方法
JP2015215756A (ja) プログラム中のif文の最適化方法
JP2007041804A (ja) プログラム生成装置、プログラム検証装置および検証プログラム
US20060070050A1 (en) Method and apparatus for reducing instruction dependencies in extended SSA form instructions
EP4168894A1 (en) Prediction using instruction correlation
US10088834B2 (en) Control system having function for optimizing control software of numerical controller in accordance with machining program
JP3658771B2 (ja) コンパイラ装置
JP5169322B2 (ja) 変数最適化装置、変数最適化プログラム、コンパイラ、変数最適化方法、及びコンパイル方法
JP2006202134A (ja) プロファイル情報収集方法および装置
JPH04229324A (ja) 誤差評価プログラム生成実行方式
JP5396930B2 (ja) 検証対象関数自動選択装置、検証対象関数自動選択方法、及び検証対象関数自動選択用プログラム
JPS63155264A (ja) ベクトル計算機用言語チユ−ニング処理方式
Noonan The design of relatively machine-independent code generators
JP2002073369A (ja) オブジェクト指向プログラム性能改善支援装置、記録媒体及びプログラム
EP0252229B1 (en) Apl-to-fortran translator

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071130

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081130

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091130

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091130

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111130

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121130

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees