JPS63276127A - ダイナミック命令生成方式 - Google Patents

ダイナミック命令生成方式

Info

Publication number
JPS63276127A
JPS63276127A JP11157287A JP11157287A JPS63276127A JP S63276127 A JPS63276127 A JP S63276127A JP 11157287 A JP11157287 A JP 11157287A JP 11157287 A JP11157287 A JP 11157287A JP S63276127 A JPS63276127 A JP S63276127A
Authority
JP
Japan
Prior art keywords
instruction
program
user
source
module
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
JP11157287A
Other languages
English (en)
Inventor
Michihiro Nakazawa
中沢 通太
Masahiro Matsuda
政博 松田
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
Fujitsu Kyushu Communication Systems Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Kyushu Communication Systems 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, Fujitsu Kyushu Communication Systems Ltd filed Critical Fujitsu Ltd
Priority to JP11157287A priority Critical patent/JPS63276127A/ja
Publication of JPS63276127A publication Critical patent/JPS63276127A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (概要) 本発明は、オブジェクトモジエール中の各命令実行回数
を利用者ごとに監視し、その結果を次回のコンパイル処
理に反映させて、最適な命令生成を行うことにより、プ
ログラムの実行効率を向上させる。
〔産業上の利用分野〕
本発明は、コンパイラにおける命令生成方式。
特に命令生成方法が複数ある場合のコンパイラの最適化
処理技術に関する。
〔従来の技術〕
原始プログラムを実行可能なプログラム、即ちOM (
Ob3ect Module)に翻訳するには1通常コ
ンパイラが用いられる。
第4図は、従来例を示す図である。
第4図において、41はS M (Source Mo
dule)。
42はコンパイラ、43はソース解析部、44は命令生
成部、45はコンパイル時の情報ファイル。
46はOM (Object Module)である。
S M (Source Module) 41は、原
始プログラムであり、コンパイラ42によりコンパイル
されて実行可能なOM(Object Module)
  46に翻訳される。
コンパイラ42は、  S M (Source Mo
dule) 41を実行可能なOM(Object M
odule)  46に翻訳する。
ソース解析部43は、  S M (Source M
odule) 41を解析するためのものである。
命令生成部44は、 OM(Object Modul
e)  4 Gの命令群を生成するためのものである。
コンパイル時の情報ファイル45には、コンパイルに必
要な情報が蓄積されている。
OM(Object Module)  46は、コン
パイラ42により翻訳された実行可能なプログラムであ
る。
原始プログラムSM41は、コンパイラ42中のソース
解析部43により命令1文法等が解析され、コンパイル
時の情報ファイル45に蓄積された情報に基づいて、命
令生成部44において命令列が生成され、実行可能なプ
ログラムである0M46に翻訳される。
〔発明が解決しようとする問題点〕
従来のコンパイラによる命令の生成方式では。
コンパイル時に収集できる情報のみから命令を生成して
いるため、実行上最適な命令の生成を行うことができな
いという問題があった。
例えば、原始プログラムSMとして次の例を考える。
IF  A=B  THEN 文I LSE 文2 F ! この原始プログラムSMにおいて1文lと文2が同時に
実行されることはない、このため1文1と文2の命令生
成順序は任意であるが1文1と文2の実行頻度により出
力順序を可変にすれば、実行効率の良いOMを生成する
ことができる。
しかしながら、実行頻度は実際に実行しなければ判らな
いから、従来例のようにコンパイル時に収集できる情報
のみから命令を生成するコンパイラでは、実行効率の良
いOMを生成することはできない。
〔問題点を解決するための手段〕
本発明は、コンパイラによる命令生成方式において、コ
ンパイルされた命令の実行時の命令実行回数をカウント
する命令実行回数カウント機構と。
この命令実行回数カウント機構の結果を各利用者毎に蓄
積していく命令実行回数蓄積機構とを設け。
原始プログラムをコンパイルする時に命令実行回数蓄積
機構に蓄積された各利用者の命令実行回数情報を反映さ
せた命令生成を行うことにより、命令の実行効率を向上
させるものである。
第1図は9本発明の基本構成を示す図である。
第1図において、1はS M (Source Mod
ule)。
2はコンパイラ、3はソース解析部、4は命令生成部、
5はコンパイル時の情報ファイル、6はOM (Obj
ect Module)、 7はLM (Load M
odule)。
8は命令実行回数カウント機構、9は命令実行回数蓄積
機構である。
S M (Source Module) 1は、高級
言語で書かれた原始プログラムである。
コンパイラ2は、ソース解析部3及び命令生成部4から
なり、SMIを0M6に翻訳する。
ソース解析部3は、SMIを解析するためのものである
命令生成部4は、0M6の命令群を生成するためのもの
である。
コンパイル時の情報ファイル5には、コンパイルに必要
な情報が蓄積されている。
OM (Object Module) 6は、コンパ
イルされた実行可能なプログラムであり、各利用者毎に
作成される。
L M (Load Module) 7は、各利用者
がコンピュータにロードして実行中のプログラムである
命令実行回数カウント機構8は、各利用者がLM7を実
行した時のLM7の命令群中の各命令の実行回数をカウ
ントするためのものである。
命令実行回数蓄積機構9は、命令実行回数カウント機構
8がカウントした各利用者の命令実行回数を各利用者ご
とに蓄積しておくためのものである。
〔作用〕
SMIを最初にコンパイルする時は、ソース解析部3に
より解析した後、コンパイル時に収集された情報のみに
基づいて命令生成部4によりOMGを作成する。
命令実行回数カウント機構8は、各利用者がLM7を実
行時に各命令が実行される都度、その回数を数え上げ、
その結果は、命令実行回数蓄積機構9が各利用者毎に蓄
積していく。
SMIをコンパイラ2により再コンパイルするには、ソ
ース解析部3によりSMIを解析した後。
コンパイル時の情報ファイル5に収集された情報に加え
て命令実行回数蓄積11fJI9に蓄積された各利用者
の命令実行回数情報をも参照して命令生成部4により0
M6を作成する。
(実施例) 第2図は1本発明の1実施例構成を示す図である。
本実施例においては、プログラムの例として。
IF   A=B   THEN 文I LSE 文2 l というプログラムを用い、以下これをプログラムAと称
する。
第2図において、21はプログラムAのSM(Sour
ce Module)、  22はコンパイラ、23は
ソース解析部、24は命令生成部、25はコンパイル時
の情報ファイル、26はプログラムAのOM(Obje
ct Module) 、  27はプログラムAのL
M(Load Module) +  28は命令実行
回数カウント機構。
29は命令実行回数蓄積機構である。
プログラムAのS M (Source Module
) 21は。
高級言語で書かれたプログラムAの原始プログラムであ
る。
コンパイラ22は、ソース解析部23及び命令生成部2
4からなり、5M21を0M26に翻訳する。
ソース解析部23は、5M21を解析するためのもので
ある。
命令生成部24は、0M26の命令群を生成するための
ものである。
コンパイル時の情報ファイル25には、コンパイルに必
要な情報が蓄積されている。
プログラムAのOM(Object Module) 
26は。
プログラムAの3M21がコンパイルされた実行可能な
プログラムである。
プログラムAのLM(Load Module) 27
は、利用者がコンピュータにロードして実行中のプログ
ラムである。
命令実行回数カウント機構28は、利用者が1M27を
実行した時のLM27の命令群中の各命令の実行回数を
カウントするためのものである。
命令実行回数蓄積機構29は、命令実行回数カウント機
構28がカウントした命令実行回数を蓄積しておくため
のものである。
本実施例において、プログラムAの3M21は。
初めは従来例と同じく、コンパイル時の情報25のみに
店づいてコンパイルされて0M26となる。
0M26は、1M27としてコンピュータにロードされ
て実行される。この実行時に各命令の実行回数が命令実
行回数カウント機構28によりカウントされ、命令実行
回数蓄積機構29に?!i積されていく。
次に、プログラムAの3M21を再コンパイルする時に
は、コンパイル時の情報25と命令実行回数蓄積機構2
9に蓄積された情報とを参照してコンパイルする。
前掲のプログラムA、即ち。
IF  A=B  THEN 文I LSE 文2 Fl というプログラムを用いて、以下説明する(第3図参照
)。
命令実行回数蓄積機構29に蓄積された情報として文2
の実行頻度が高ければ、命令生成部24− の命令生成
論理1を用いて、第3図(a)に示した命令群を生成す
る。これにより8図中■で示した分岐命令の実行時間を
短縮することができる。
また、命令実行回数蓄積機構29に蓄積された情報とし
て文1の実行頻度が高ければ、命令生成部24の命令生
成論理2を用いて、第3図(b)に示した命令群を生成
する。これにより3図中■で示した分岐命令の実行時間
を短縮することができる。
〔発明の効果〕 本発明では、命令生成条件に実行時の各命令の実行頻度
を盛り込むので、原始プログラムのコンパイルと実行を
繰り返す毎に、より最適な命令生成を実現し、より効率
の良いOM (Object Module)を生成す
ることができる。
また、同一の原始プログラムから、各利用者の実行条件
に適した。異なったO M (Object Modu
le)を作成し、ソフトウェア製品の実行効率を上げる
ことができる。
【図面の簡単な説明】
第1図は本発明の基本構成を示す図、第2図は本発明の
1実施例構成を示す図、第3図は生成されるOMの命令
群の例を示す図、第4図は従来例を示す図である。 第1rjJにおいて。 1 : S M (Source Module)2:
コンパイラ 3:ソース解析部 4:命令生成部 5=コンパイル時の情報ファイル 6 + OM (Object Module)7 :
 L M (Load Module)8:命令実行回
数カウント機構 9:命令実行回数蓄積機構 特許出願人  富士通株式会社(外1名)代理人弁理士
 長谷用 文廣(外1名)主威フバろONシ會冷群0例 $ 3 国

Claims (1)

  1. 【特許請求の範囲】 コンパイラによる命令生成方式において、 原始プログラムからコンパイルされたオブジェクトモジ
    ュール中の各命令の実行時の実行回数をカウントする命
    令実行回数カウント機構(8)と、この命令実行回数カ
    ウント機構(8)の結果を各利用者毎に蓄積していく命
    令実行回数蓄積機構(9)とを設け、 原始プログラムをコンパイルする時に命令実行回数蓄積
    機構(9)に蓄積された各利用者の命令実行回数情報を
    参照して実行回数の多い命令については処理時間を短縮
    する最適化を行い、命令生成方法を変更することを特徴
    とするダイナミック命令生成方式。
JP11157287A 1987-05-07 1987-05-07 ダイナミック命令生成方式 Pending JPS63276127A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11157287A JPS63276127A (ja) 1987-05-07 1987-05-07 ダイナミック命令生成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11157287A JPS63276127A (ja) 1987-05-07 1987-05-07 ダイナミック命令生成方式

Publications (1)

Publication Number Publication Date
JPS63276127A true JPS63276127A (ja) 1988-11-14

Family

ID=14564777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11157287A Pending JPS63276127A (ja) 1987-05-07 1987-05-07 ダイナミック命令生成方式

Country Status (1)

Country Link
JP (1) JPS63276127A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160499A (ja) * 1993-12-09 1995-06-23 Nec Corp 多方向分岐命令の最適化方式
WO2000003322A1 (fr) * 1998-07-10 2000-01-20 Sony Corporation Procede et appareil de compilation
US6848098B1 (en) 1999-11-18 2005-01-25 Fujitsu Limited Process and apparatus for optimizing program written in interpretive language for each callable program part base on frequency of executions

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160499A (ja) * 1993-12-09 1995-06-23 Nec Corp 多方向分岐命令の最適化方式
WO2000003322A1 (fr) * 1998-07-10 2000-01-20 Sony Corporation Procede et appareil de compilation
US6848098B1 (en) 1999-11-18 2005-01-25 Fujitsu Limited Process and apparatus for optimizing program written in interpretive language for each callable program part base on frequency of executions

Similar Documents

Publication Publication Date Title
US5586328A (en) Module dependency based incremental compiler and method
Click Global code motion/global value numbering
Hermenegildo et al. The CIAO multi-dialect compiler and system: An experimentation workbench for future (C) LP systems
JP3290567B2 (ja) プロファイル計装方法
EP1164478A2 (en) Method and apparatus for resolving data references in generated code
US20040025152A1 (en) Compiling method, apparatus, and program
Agrawal et al. Interprocedural compilation of irregular applications for distributed memory machines
Cooper et al. Building a control-flow graph from scheduled assembly code
JP3802058B2 (ja) ソフトウェア・コンパイル・ユニットを条件付きでコンパイルするシステム、方法およびコンパイラ・プリプロセッサ
CN112114817B (zh) 基于cobol语言的数据字典字段信息获取方法及装置
Andersen Partial evaluation of C and automatic compiler generation
Sathyanathan et al. Incremental whole program optimization and compilation
US5134705A (en) System and method for concurrency simulation
US20170206068A1 (en) Program optimization based on directives for intermediate code
Guyer et al. Optimizing the use of high performance software libraries
Shei et al. MATLAB parallelization through scalarization
JPS63276127A (ja) ダイナミック命令生成方式
Basso et al. Optimizing Parallel Java Streams
Dybvig et al. Destination-driven code generation
Wiedmann A performance comparison between an APL interpreter and compiler
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
JP3018783B2 (ja) コンパイル方式
Teodosiu Hare: An optimizing portable compiler for Scheme
Ching An APL/370 compiler and some performance comparisons with APL interpreter and FORTRAN
Malik et al. Memory management of safety-critical hard real-time systems designed in SystemJ