JPS62165245A - プログラムのコスト評価方式 - Google Patents
プログラムのコスト評価方式Info
- Publication number
- JPS62165245A JPS62165245A JP61008420A JP842086A JPS62165245A JP S62165245 A JPS62165245 A JP S62165245A JP 61008420 A JP61008420 A JP 61008420A JP 842086 A JP842086 A JP 842086A JP S62165245 A JPS62165245 A JP S62165245A
- Authority
- JP
- Japan
- Prior art keywords
- statement
- cost
- program
- terminal
- loop
- 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.)
- Granted
Links
- 238000011156 evaluation Methods 0.000 title claims description 6
- 238000012545 processing Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 241000287127 Passeridae Species 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
プログラムの実行時の性能を、オブジェクトリストの文
当りのコスト評価で行なう。その際り。
当りのコスト評価で行なう。その際り。
ループ端末文をネストの深さに応じた実行回数でコスト
を累積し、正確な見積りを可能にする。
を累積し、正確な見積りを可能にする。
本発明は情報処理システムにおけるプログラムの動的解
析処理方式に関するものであり、 特にFORTRAN
やPL/1などのプログラムのコスト評価方式に関する
。
析処理方式に関するものであり、 特にFORTRAN
やPL/1などのプログラムのコスト評価方式に関する
。
従来、たとえばプログラム中で時間が長くかかる部分を
チューニング(最適化)により改良するため、あるいは
ルートテストなどをおこなうために、プログラムの実行
時の動作を解析し、結果を利用し易い形で提供する手段
が9種々考えられている。
チューニング(最適化)により改良するため、あるいは
ルートテストなどをおこなうために、プログラムの実行
時の動作を解析し、結果を利用し易い形で提供する手段
が9種々考えられている。
そのような手段の1つとして、プログラム実行時にその
プログラム名1文、実行回数1文当たりのコスト(たと
えば実行時間)をデータとして作成し、プログラムの性
能評価を可能にするものがあるすこの場合、コンパイラ
が生成するオブジェクトリストから各文鳥たりのコスト
を見積もる方法がとられる。この見積りは、オブジェク
トリストに現れた命令列にしたがってコストを累算して
ゆくものである。
プログラム名1文、実行回数1文当たりのコスト(たと
えば実行時間)をデータとして作成し、プログラムの性
能評価を可能にするものがあるすこの場合、コンパイラ
が生成するオブジェクトリストから各文鳥たりのコスト
を見積もる方法がとられる。この見積りは、オブジェク
トリストに現れた命令列にしたがってコストを累算して
ゆくものである。
プログラム中の文鳥たりのコストを評価する場合、DO
ループの端末文(CONTINUE)は。
ループの端末文(CONTINUE)は。
多重DOループの複数のDO文により共有されていれば
、そのネストの深さおよび実行回数により。
、そのネストの深さおよび実行回数により。
そのコスト見積りを変えなければ正しい評価を行うこと
ができない。
ができない。
たとえば2次のような2重のDO小ループ例では、外側
のDO小ループのDO端末文(CONTINUE)の実
行回数は5回、そして内側DO小ループのDO端末文の
実行回数はDOループ単位では4回であるが、外側DO
ループの実行回数が5回あるため、 (5X4)の2
0回となる。
のDO小ループのDO端末文(CONTINUE)の実
行回数は5回、そして内側DO小ループのDO端末文の
実行回数はDOループ単位では4回であるが、外側DO
ループの実行回数が5回あるため、 (5X4)の2
0回となる。
本発明は、多重のDO小ループより共有されるDO端末
文に対するコスト見積りを、DO小ループ多重度や実行
回数に基づいて正確に算出できるようにするものである
。゛ 第1図に本発明の原理的構成を示す。
文に対するコスト見積りを、DO小ループ多重度や実行
回数に基づいて正確に算出できるようにするものである
。゛ 第1図に本発明の原理的構成を示す。
図において、10は情報処理システム、11はプログラ
ム実行部、12はプログラム解析処理部。
ム実行部、12はプログラム解析処理部。
13はDO文別コスト算出部、14はカウンタ。
15はDO文別コスト記憶部、16はDO文実行回数算
出部、17はDO文実行回数記憶部、18はDO端末文
総コスト算出部、19はプログラム情報を表す。
出部、17はDO文実行回数記憶部、18はDO端末文
総コスト算出部、19はプログラム情報を表す。
プログラム実行部11は、解析対象のプログラムを実行
し、その実行時間をカウンタ14により検出可能にする
。
し、その実行時間をカウンタ14により検出可能にする
。
プログラム解析処理部12は、プログラム実行部11の
動作状態をプログラム情報19に基づいて解析し、プロ
グラムのトレース、実行回数1文当りのコスト算出等を
行う。ただし、ここでは。
動作状態をプログラム情報19に基づいて解析し、プロ
グラムのトレース、実行回数1文当りのコスト算出等を
行う。ただし、ここでは。
本発明が対象とするDO端末文のコスト評価機能につい
てのみ説明される。
てのみ説明される。
DO文別コスト算出部13は、多重DOループの場合、
その各不ストレベルのDO文単位でのコストを算出し、
それぞれDO文別コスト記憶部15に記憶する。コスト
は、カウンタ14の実行時間から求められる。
その各不ストレベルのDO文単位でのコストを算出し、
それぞれDO文別コスト記憶部15に記憶する。コスト
は、カウンタ14の実行時間から求められる。
DO文実行回数算出部16は、外側DOループのループ
実行に伴って行われる内側DOループの不ストレベルご
とのDO文実行回数(ネストが深くなるほど、DO文実
行回数は増大する)を算出し、DO文実行回数記憶部1
7に記憶する。
実行に伴って行われる内側DOループの不ストレベルご
とのDO文実行回数(ネストが深くなるほど、DO文実
行回数は増大する)を算出し、DO文実行回数記憶部1
7に記憶する。
DO端末文総コスト算出部18は、DO文別コスト記憶
部15と、DO文実行回数記憶部17との各データを各
不ストレベルのDO文ごとに乗算して、その総和を求め
、各DO文により共存されるDO端末文の総コストを見
積もる。
部15と、DO文実行回数記憶部17との各データを各
不ストレベルのDO文ごとに乗算して、その総和を求め
、各DO文により共存されるDO端末文の総コストを見
積もる。
本発明によれば、任意多重のDO文により共有されるD
O端末文は、まず各ネストのDO文ごとに切分けて個々
に見積りされる。このとき各DO文ごとのコストには、
そのDO文のループ実行回数分が累積される。
O端末文は、まず各ネストのDO文ごとに切分けて個々
に見積りされる。このとき各DO文ごとのコストには、
そのDO文のループ実行回数分が累積される。
次に、内側DO小ループ外側DOループのループ実行の
結果として処理の繰り返しを行うDO文実行回数が、各
ネストのレベル(DO文位置)ごとに算出される。
結果として処理の繰り返しを行うDO文実行回数が、各
ネストのレベル(DO文位置)ごとに算出される。
このようにして得られた各ループごとのDO端末文のコ
ストにその不ストレベルのDO文実行回数を掛は合わせ
、その結果の和をDO端末文を共有するDO文(DO小
ループについてとることにより、DO端端末へ総コスト
が得られる。
ストにその不ストレベルのDO文実行回数を掛は合わせ
、その結果の和をDO端末文を共有するDO文(DO小
ループについてとることにより、DO端端末へ総コスト
が得られる。
第2図に多重DOループの例を示す。
図において、 (a)は多重DOループのソースプログ
ラムで、ネスト1.ネスト2.ネスト3゜・・・の方向
にネストが深くなっている(内側DOループへ向う)。
ラムで、ネスト1.ネスト2.ネスト3゜・・・の方向
にネストが深くなっている(内側DOループへ向う)。
また1、、、12.It3.・・・はDO小ループ実行
回数+ ” 1.eZ、” :1.・・・はDO文の
実行回数。
回数+ ” 1.eZ、” :1.・・・はDO文の
実行回数。
dはDO端末文を共有するDO文の繰り返しが終了した
回数を表わしている。
回数を表わしている。
第2図の(b)は、 (a)のソースプログラムをコン
パイラで翻訳して得たオブジェクトリスト上の命令列を
模式化して示したもので、■、■。
パイラで翻訳して得たオブジェクトリスト上の命令列を
模式化して示したもので、■、■。
・・・、■は命令、C1C2,C3,・・・+C?はD
OO単位でのDO端端末ココスト表わしている。
OO単位でのDO端端末ココスト表わしている。
図示の例では、命令■はDO端端末へ命令■。
■、■はループからの脱出を判定する分岐命令である。
たとえばネスト3のDO文は、命令■から命令■までを
13回実行し9次に分岐命令■からネスト2のDO文へ
移行する。このときネスト3のDOO単位のDO端末文
コス)C4を算出し、記憶する。
13回実行し9次に分岐命令■からネスト2のDO文へ
移行する。このときネスト3のDOO単位のDO端末文
コス)C4を算出し、記憶する。
以下同様にして、各DO小ループら外側DOループへ移
行する際に、DO端端末ココスト算出し記憶する。
行する際に、DO端端末ココスト算出し記憶する。
他方、各DO文の実行回数e、、e2.e3.・・・を
求めることにより、DO端端末へコストは次式で与えら
れる。
求めることにより、DO端端末へコストは次式で与えら
れる。
DO端末文コスト=−・+C4・C3+C1’ ez+
c、−8,+c、−d 〔実施例〕 第3図は1本発明が適用可能な多重DOループを含むプ
ログラム例を示したものである。図(a)は3重のDO
小ループ含むFORTRANプログラム、図(b)はそ
のオブジェクトリストである。
c、−8,+c、−d 〔実施例〕 第3図は1本発明が適用可能な多重DOループを含むプ
ログラム例を示したものである。図(a)は3重のDO
小ループ含むFORTRANプログラム、図(b)はそ
のオブジェクトリストである。
各DO小ループ3つの分岐命令BCRからそれぞれDO
端端末へ向うに、j、iのループとして示されている。
端端末へ向うに、j、iのループとして示されている。
これらに基づ<DO文別のDO端端末ココスト+ C
4+ cS、Cbで求められる。
4+ cS、Cbで求められる。
第4図は、第1図に基づく本発明の1実施例構成による
プログラム解析処理部12の処理フローを示したもので
ある。図において、131はり。
プログラム解析処理部12の処理フローを示したもので
ある。図において、131はり。
文別コスト算出部13内に置かれるSUMレジスタ、1
5はDO文別コスト記憶部、151はコストスタッカ、
152はスタックポインタである。
5はDO文別コスト記憶部、151はコストスタッカ、
152はスタックポインタである。
以下■ないし■で示す手順で動作を説明する。
■ プログラム中のDO端末文を検出する。他の実行文
の場合には、その処理を行なう。
の場合には、その処理を行なう。
■ DO端端末へ検出されたとき、SUMレジスタ13
1を、SUM=Oにクリアする。
1を、SUM=Oにクリアする。
■ 文を1行読込む。
■ DO小ループ続く“次の文”が現れたときには■を
実行するが、他の場合には次の■を実行する。
実行するが、他の場合には次の■を実行する。
■ その文が実行文であれば次の■を実行し。
他の場合には■へ戻る。
■ 実行命令の場合、その命令コストを求め。
SUMレジスタ131の内容に加算して、その命令コス
トを累積する。すなわち。
トを累積する。すなわち。
SUM=SUM十命令コスト
■ さらにその文が分岐命令であった場合には[F]を
実行し、他の場合には■へ戻る。
実行し、他の場合には■へ戻る。
■ 分岐命令を検出したとき、SUMレジスタ131の
内容を、 現在のスタックポインタ152が指している
コストスタッカ151の位置に格納し1次にスタックポ
インタ152を1位置だけ進める。その後、■へ戻る。
内容を、 現在のスタックポインタ152が指している
コストスタッカ151の位置に格納し1次にスタックポ
インタ152を1位置だけ進める。その後、■へ戻る。
■ ■でDO小ループ外次の文が現れたとき。
スタックポインタ152を、DO5iii末文が共有さ
れている数だけ順次戻し、その範囲の各命令コスト累積
値を用いて、共有端末文のコストを算出する。
れている数だけ順次戻し、その範囲の各命令コスト累積
値を用いて、共有端末文のコストを算出する。
本発明は、任意の主プログラム、副プログラムに適用す
ることができる。たとえば主、副プログラムがともにF
ORTRANプログラムの場合には、主プログラムに本
発明のプログラム解析処理部12を初期設定する文と呼
出す文とを、翻訳時に挿入する機能を用意しておけばよ
い。しかし。
ることができる。たとえば主、副プログラムがともにF
ORTRANプログラムの場合には、主プログラムに本
発明のプログラム解析処理部12を初期設定する文と呼
出す文とを、翻訳時に挿入する機能を用意しておけばよ
い。しかし。
主プログラムがFORTRAN以外の言語を用いたプロ
グラムであった場合には、上記の翻訳時における初期設
定および呼出しの文挿入は行なわず。
グラムであった場合には、上記の翻訳時における初期設
定および呼出しの文挿入は行なわず。
予め、ユーザによりその主プログラム中に同様な文を追
加させておけば、FORTRANの副プログラムに本発
明のプログラム解析処理部を使用させることが可能であ
る。
加させておけば、FORTRANの副プログラムに本発
明のプログラム解析処理部を使用させることが可能であ
る。
本発明によれば、DO端末文に対するコスト見積りを正
確に行なうことができる。これにより。
確に行なうことができる。これにより。
プログラム改良のための性能評価を適確に行なうことが
可能となり、またベクトルプロセッサによるベクトル処
理化を図るためのチューニングにおいて、良好な目安を
得ることができる。
可能となり、またベクトルプロセッサによるベクトル処
理化を図るためのチューニングにおいて、良好な目安を
得ることができる。
第1図は本発明の原理的構成図、第2図は本発明の詳細
な説明するための処理側説明図、第3図は多重DO小ル
ープ含むプログラムの具体例の説明図、第4図は本発明
の1実施例による処理フローの説明図である。 第1図中。 10:情叩処理システム 11ニブログラム実行部 12ニブログラム解析処理部 13:DO文別コスト算出部 16:DO文実行回数算出部
な説明するための処理側説明図、第3図は多重DO小ル
ープ含むプログラムの具体例の説明図、第4図は本発明
の1実施例による処理フローの説明図である。 第1図中。 10:情叩処理システム 11ニブログラム実行部 12ニブログラム解析処理部 13:DO文別コスト算出部 16:DO文実行回数算出部
Claims (1)
- 【特許請求の範囲】 プログラムの動的解析を行うプログラム解析処理部(1
2)をそなえた情報処理システム(10)において、 上記プログラム解析処理部(12)は、実行中のプログ
ラムがDO端末文を共有する多重DOループを含む場合
、その各DOループのDO文単位にDO端末文のコスト
を算出するDO文別コスト算出部(13)と、上記各D
O文ごとの実行回数を求めるDO文実行回数算出部(1
6)と、上記各算出されたDO文単位のDO端末文コス
トに当該DO文の実行回数を乗算し、その結果の総和を
求めるDO端末文総コスト算出部(18)とをそなえて
、多重DOループに共有されるDO端末文のコストを得
ることを特徴とするプログラムのコスト評価方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61008420A JP2537788B2 (ja) | 1986-01-17 | 1986-01-17 | プログラムのコスト評価方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61008420A JP2537788B2 (ja) | 1986-01-17 | 1986-01-17 | プログラムのコスト評価方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62165245A true JPS62165245A (ja) | 1987-07-21 |
JP2537788B2 JP2537788B2 (ja) | 1996-09-25 |
Family
ID=11692631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61008420A Expired - Fee Related JP2537788B2 (ja) | 1986-01-17 | 1986-01-17 | プログラムのコスト評価方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2537788B2 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS616722A (ja) * | 1984-06-20 | 1986-01-13 | Fujitsu Ltd | 文の実行費用の計算方式 |
-
1986
- 1986-01-17 JP JP61008420A patent/JP2537788B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS616722A (ja) * | 1984-06-20 | 1986-01-13 | Fujitsu Ltd | 文の実行費用の計算方式 |
Also Published As
Publication number | Publication date |
---|---|
JP2537788B2 (ja) | 1996-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7331040B2 (en) | Condition code flag emulation for program code conversion | |
Wilson et al. | Efficient context-sensitive pointer analysis for C programs | |
JPH0442693B2 (ja) | ||
US20080177985A1 (en) | Condition code flag emulation for program code conversion | |
PT100167A (pt) | Metodo e instrumento para compilar codigo em computadores digitais | |
EP1502196A1 (en) | System and method for transformation of xml documents using stylesheets | |
JPH0695311B2 (ja) | コード最適化方法 | |
KR920001321A (ko) | 고속 프로세서에서의 브랜치 처리 방법 및 장치 | |
US7694288B2 (en) | Static single assignment form pattern matcher | |
US8516467B2 (en) | Method and apparatus for enhancing comprehension of code time complexity and flow | |
KR100943887B1 (ko) | 핫스팟 메소드의 동적 컴파일을 위해 수행 시간을 추정하는방법 | |
JPS62165245A (ja) | プログラムのコスト評価方式 | |
Barrett et al. | Predictable macros for Hindley-Milner | |
CN113220302B (zh) | 面向物联网操作系统的代码缺陷静态检测方法和系统 | |
CN109814924A (zh) | 一种软件复杂度计算方法 | |
Moudgill et al. | Run-time detection and recovery from incorrectly reordered memory operations | |
US6694512B1 (en) | Data processing device, data processing method and supply medium thereof | |
Mansky et al. | Specifying and executing optimizations for parallel programs | |
Lindahl et al. | Unboxed compilation of floating point arithmetic in a dynamically typed language environment | |
Valmari | Stubborn sets with frozen actions | |
KR100279731B1 (ko) | 칠 언어에 대한 제어 흐름 표시방법 | |
Janecek et al. | Uncovering Steady State Executions in Java Microbenchmarking with Call Graph Analysis | |
JPH0117175B2 (ja) | ||
Scaife et al. | Empirical parallel performance prediction from semantics-based profiling | |
Schuermans et al. | Implementation of ESL Power Estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |