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
Application number
JP61008420A
Other languages
English (en)
Other versions
JP2537788B2 (ja
Inventor
Toshihiko Konno
紺野 敏彦
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP61008420A priority Critical patent/JP2537788B2/ja
Publication of JPS62165245A publication Critical patent/JPS62165245A/ja
Application granted granted Critical
Publication of JP2537788B2 publication Critical patent/JP2537788B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 プログラムの実行時の性能を、オブジェクトリストの文
当りのコスト評価で行なう。その際り。
ループ端末文をネストの深さに応じた実行回数でコスト
を累積し、正確な見積りを可能にする。
〔産業上の利用分野〕
本発明は情報処理システムにおけるプログラムの動的解
析処理方式に関するものであり、 特にFORTRAN
やPL/1などのプログラムのコスト評価方式に関する
〔従来の技術〕
従来、たとえばプログラム中で時間が長くかかる部分を
チューニング(最適化)により改良するため、あるいは
ルートテストなどをおこなうために、プログラムの実行
時の動作を解析し、結果を利用し易い形で提供する手段
が9種々考えられている。
そのような手段の1つとして、プログラム実行時にその
プログラム名1文、実行回数1文当たりのコスト(たと
えば実行時間)をデータとして作成し、プログラムの性
能評価を可能にするものがあるすこの場合、コンパイラ
が生成するオブジェクトリストから各文鳥たりのコスト
を見積もる方法がとられる。この見積りは、オブジェク
トリストに現れた命令列にしたがってコストを累算して
ゆくものである。
〔発明が解決しようとする問題点〕
プログラム中の文鳥たりのコストを評価する場合、DO
ループの端末文(CONTINUE)は。
多重DOループの複数のDO文により共有されていれば
、そのネストの深さおよび実行回数により。
そのコスト見積りを変えなければ正しい評価を行うこと
ができない。
たとえば2次のような2重のDO小ループ例では、外側
のDO小ループのDO端末文(CONTINUE)の実
行回数は5回、そして内側DO小ループのDO端末文の
実行回数はDOループ単位では4回であるが、外側DO
ループの実行回数が5回あるため、  (5X4)の2
0回となる。
〔問題点を解決するための手段〕
本発明は、多重のDO小ループより共有されるDO端末
文に対するコスト見積りを、DO小ループ多重度や実行
回数に基づいて正確に算出できるようにするものである
。゛ 第1図に本発明の原理的構成を示す。
図において、10は情報処理システム、11はプログラ
ム実行部、12はプログラム解析処理部。
13はDO文別コスト算出部、14はカウンタ。
15はDO文別コスト記憶部、16はDO文実行回数算
出部、17はDO文実行回数記憶部、18はDO端末文
総コスト算出部、19はプログラム情報を表す。
プログラム実行部11は、解析対象のプログラムを実行
し、その実行時間をカウンタ14により検出可能にする
プログラム解析処理部12は、プログラム実行部11の
動作状態をプログラム情報19に基づいて解析し、プロ
グラムのトレース、実行回数1文当りのコスト算出等を
行う。ただし、ここでは。
本発明が対象とするDO端末文のコスト評価機能につい
てのみ説明される。
DO文別コスト算出部13は、多重DOループの場合、
その各不ストレベルのDO文単位でのコストを算出し、
それぞれDO文別コスト記憶部15に記憶する。コスト
は、カウンタ14の実行時間から求められる。
DO文実行回数算出部16は、外側DOループのループ
実行に伴って行われる内側DOループの不ストレベルご
とのDO文実行回数(ネストが深くなるほど、DO文実
行回数は増大する)を算出し、DO文実行回数記憶部1
7に記憶する。
DO端末文総コスト算出部18は、DO文別コスト記憶
部15と、DO文実行回数記憶部17との各データを各
不ストレベルのDO文ごとに乗算して、その総和を求め
、各DO文により共存されるDO端末文の総コストを見
積もる。
〔作用〕
本発明によれば、任意多重のDO文により共有されるD
O端末文は、まず各ネストのDO文ごとに切分けて個々
に見積りされる。このとき各DO文ごとのコストには、
そのDO文のループ実行回数分が累積される。
次に、内側DO小ループ外側DOループのループ実行の
結果として処理の繰り返しを行うDO文実行回数が、各
ネストのレベル(DO文位置)ごとに算出される。
このようにして得られた各ループごとのDO端末文のコ
ストにその不ストレベルのDO文実行回数を掛は合わせ
、その結果の和をDO端末文を共有するDO文(DO小
ループについてとることにより、DO端端末へ総コスト
が得られる。
第2図に多重DOループの例を示す。
図において、 (a)は多重DOループのソースプログ
ラムで、ネスト1.ネスト2.ネスト3゜・・・の方向
にネストが深くなっている(内側DOループへ向う)。
また1、、、12.It3.・・・はDO小ループ実行
回数+  ” 1.eZ、” :1.・・・はDO文の
実行回数。
dはDO端末文を共有するDO文の繰り返しが終了した
回数を表わしている。
第2図の(b)は、 (a)のソースプログラムをコン
パイラで翻訳して得たオブジェクトリスト上の命令列を
模式化して示したもので、■、■。
・・・、■は命令、C1C2,C3,・・・+C?はD
OO単位でのDO端端末ココスト表わしている。
図示の例では、命令■はDO端端末へ命令■。
■、■はループからの脱出を判定する分岐命令である。
たとえばネスト3のDO文は、命令■から命令■までを
13回実行し9次に分岐命令■からネスト2のDO文へ
移行する。このときネスト3のDOO単位のDO端末文
コス)C4を算出し、記憶する。
以下同様にして、各DO小ループら外側DOループへ移
行する際に、DO端端末ココスト算出し記憶する。
他方、各DO文の実行回数e、、e2.e3.・・・を
求めることにより、DO端端末へコストは次式で与えら
れる。
DO端末文コスト=−・+C4・C3+C1’ ez+
c、−8,+c、−d 〔実施例〕 第3図は1本発明が適用可能な多重DOループを含むプ
ログラム例を示したものである。図(a)は3重のDO
小ループ含むFORTRANプログラム、図(b)はそ
のオブジェクトリストである。
各DO小ループ3つの分岐命令BCRからそれぞれDO
端端末へ向うに、j、iのループとして示されている。
これらに基づ<DO文別のDO端端末ココスト+  C
4+ cS、Cbで求められる。
第4図は、第1図に基づく本発明の1実施例構成による
プログラム解析処理部12の処理フローを示したもので
ある。図において、131はり。
文別コスト算出部13内に置かれるSUMレジスタ、1
5はDO文別コスト記憶部、151はコストスタッカ、
152はスタックポインタである。
以下■ないし■で示す手順で動作を説明する。
■ プログラム中のDO端末文を検出する。他の実行文
の場合には、その処理を行なう。
■ DO端端末へ検出されたとき、SUMレジスタ13
1を、SUM=Oにクリアする。
■ 文を1行読込む。
■ DO小ループ続く“次の文”が現れたときには■を
実行するが、他の場合には次の■を実行する。
■ その文が実行文であれば次の■を実行し。
他の場合には■へ戻る。
■ 実行命令の場合、その命令コストを求め。
SUMレジスタ131の内容に加算して、その命令コス
トを累積する。すなわち。
SUM=SUM十命令コスト ■ さらにその文が分岐命令であった場合には[F]を
実行し、他の場合には■へ戻る。
■ 分岐命令を検出したとき、SUMレジスタ131の
内容を、 現在のスタックポインタ152が指している
コストスタッカ151の位置に格納し1次にスタックポ
インタ152を1位置だけ進める。その後、■へ戻る。
■ ■でDO小ループ外次の文が現れたとき。
スタックポインタ152を、DO5iii末文が共有さ
れている数だけ順次戻し、その範囲の各命令コスト累積
値を用いて、共有端末文のコストを算出する。
本発明は、任意の主プログラム、副プログラムに適用す
ることができる。たとえば主、副プログラムがともにF
ORTRANプログラムの場合には、主プログラムに本
発明のプログラム解析処理部12を初期設定する文と呼
出す文とを、翻訳時に挿入する機能を用意しておけばよ
い。しかし。
主プログラムがFORTRAN以外の言語を用いたプロ
グラムであった場合には、上記の翻訳時における初期設
定および呼出しの文挿入は行なわず。
予め、ユーザによりその主プログラム中に同様な文を追
加させておけば、FORTRANの副プログラムに本発
明のプログラム解析処理部を使用させることが可能であ
る。
〔発明の効果〕
本発明によれば、DO端末文に対するコスト見積りを正
確に行なうことができる。これにより。
プログラム改良のための性能評価を適確に行なうことが
可能となり、またベクトルプロセッサによるベクトル処
理化を図るためのチューニングにおいて、良好な目安を
得ることができる。
【図面の簡単な説明】
第1図は本発明の原理的構成図、第2図は本発明の詳細
な説明するための処理側説明図、第3図は多重DO小ル
ープ含むプログラムの具体例の説明図、第4図は本発明
の1実施例による処理フローの説明図である。 第1図中。 10:情叩処理システム 11ニブログラム実行部 12ニブログラム解析処理部 13:DO文別コスト算出部 16:DO文実行回数算出部

Claims (1)

  1. 【特許請求の範囲】 プログラムの動的解析を行うプログラム解析処理部(1
    2)をそなえた情報処理システム(10)において、 上記プログラム解析処理部(12)は、実行中のプログ
    ラムがDO端末文を共有する多重DOループを含む場合
    、その各DOループのDO文単位にDO端末文のコスト
    を算出するDO文別コスト算出部(13)と、上記各D
    O文ごとの実行回数を求めるDO文実行回数算出部(1
    6)と、上記各算出されたDO文単位のDO端末文コス
    トに当該DO文の実行回数を乗算し、その結果の総和を
    求めるDO端末文総コスト算出部(18)とをそなえて
    、多重DOループに共有されるDO端末文のコストを得
    ることを特徴とするプログラムのコスト評価方式。
JP61008420A 1986-01-17 1986-01-17 プログラムのコスト評価方式 Expired - Fee Related JP2537788B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS616722A (ja) * 1984-06-20 1986-01-13 Fujitsu Ltd 文の実行費用の計算方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
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