JPH0374729A - 10進乗除最適化コンパイラ - Google Patents

10進乗除最適化コンパイラ

Info

Publication number
JPH0374729A
JPH0374729A JP21066789A JP21066789A JPH0374729A JP H0374729 A JPH0374729 A JP H0374729A JP 21066789 A JP21066789 A JP 21066789A JP 21066789 A JP21066789 A JP 21066789A JP H0374729 A JPH0374729 A JP H0374729A
Authority
JP
Japan
Prior art keywords
decimal
optimization
multiplication
compiler
division
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
JP21066789A
Other languages
English (en)
Inventor
Tomoyoshi Tomita
富田 智良
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP21066789A priority Critical patent/JPH0374729A/ja
Publication of JPH0374729A publication Critical patent/JPH0374729A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、パック10進データ形式の演算可能な計算
機上でより高速に動作するオブジェクトプログラムを作
り出す10進乗除最適化コンパイラに関するものである
[従来の技術] ソースプログラムをオブジェクトプログラムに翻訳(コ
ンパイル)するコンパイラは、第5図に示すようにソー
スプログラムの構文を解析する構文解析部と、解析した
情報を基にオブジェクトプログラムを生成するコード生
成部に分けられる。
コード生成部の四則演算に関する部分では、第6図に示
すように演算のデータ形式を決定する機能と、それぞれ
のデータ形式用の命令を生成する機能に分けられる。そ
の一つにパック10進命令生成機能がある。このパック
10進命令生成機能は。
第7図に示すように加減算用1乗算用、除算用のパック
10進命令生成機能を有している。
なお、この発明に関係する機能は1乗算および除算用の
パック10進命令生成機能であり、以下、これについて
述べる。
この乗算および除算用のパック10進命令生成機能は、
転送/データ変換命令生成機能と乗算あるいは除算命令
生成機能に分けちれるゆ従来の10進乗除最適化コンパ
イラの動作を説明するに当たり、第8図に示すようなソ
ースプログラムをコンパイルする処理を考える。第8図
の■行において、コンパイラの構文解析部で、第9図に
示すような中間コードが生成されたとする。
この中間コードがコード生成部によって処理される。■
、■の中間コードは第6図の四則演算に関するコード生
成部で処理される。以下、第9図の■の中間コードにつ
いて考える。
まず、第6図のデータ形式を決定する機能によりどのデ
ータ形式で演算を行うかを決定する。
パック10進データ形式で演算を行うと判断されると、
第7図の乗算用のパック10進命令生戒機能で処理され
る。この時、第9図の■の中間コードの”100″を第
1オペランド、″スタック”を第2オペランドとすると
、それぞれのオペランドの属性には第10図に示すよう
な情報が保持されている。乗算用のパック10進命令生
戒機能の処理の流れは第11図に示すようになり、第9
図の■の中間コードに対する処理の流れは次のようにな
る。
(1)ステップ〈Sl)でオペランド1が定数であるか
判定され、オペランド1は定数であるので、ステップ(
S2)へ制御を移す。
(2)ステップ(S2)で定数の値100″を定数領域
へ登録する。
(3)次に、ステップ(S3)に進み、結果のオペラン
ド属性(スタック、整数部の桁数6、小数部の桁数3.
パック10進データ形式、領域の大きさは8バイト、値
は不定)を求める。
(4)続いて、ステップ(S4)に進み、オペランド1
のデータ変換が必要かどうかを判定する。この場合はオ
ペランド1のデータ変換は不要であるので、ステップ(
S6)に進む。
(5) ステップ(S6)では1オペランド2のデータ
変換が必要かどうかを判定し、この場合はオペランド2
のデータ変換は不要であるので、ステップ(S8)に進
む。
(6〉 ステップ(S8)では、オペランド2にオペラ
ンド1を掛ける10進データ形式の命令を出す。
(7)次に、ステップ(S9)に進み。オペランド2の
属性を結果のオペランド属性に置き換える。
第9図の■、■および■に対するコード生成部の処理の
流れは、この発明に係るものではないので省略するが、
第9図の中間コードにより生成される機械語は第12図
に示すようになる。ここで、第12図の■は第9図の■
の中間コードに対応して作成された機械語である。
以下、Bの内容に12.345が与えられている場合を
例に取り、従来のコンパイラにより生成された機械語を
説明する。
第13図は2機械語が実行された時のデータ名A、Bお
よびコンパイラ演算を行うために作り出す領域Temp
の内容の移り変わりは次のようになる。
■ PACK命令によりTempの内容は。
12Δ345となる。
■ MP命令によりTempの内容は、1234Δ50
0となる。
■ AP命令によりTempの内容は1235ΔOOO
となる。
■ SRP命令によりTempの内容は1235Δ0と
なる。
UNPK命令によりAの内容は1235Δ0となる。
このように第8図に示すソースプログラムをコンパイル
し、実行した結果、データ名人の内容は、1235.0
となることが分かる。
[発明が解決しようとする課題] 上記のような従来の10進乗除最適化コンパイラでは、
コンパイラによりコンパイルされたプログラムの実行時
の時間性能が悪いおよびプログラムの容量効率が悪いな
どの問題点があった。
この発明は、かかる問題点を解決するためになされたも
ので、より高速にプログラムを実行できるように最適化
したオブジェクトプログラムを生成する10進乗除最適
化コンパイルを得ることを目的とする。
[課題を解決するための手段] この発明に係る10進乗除最適化コンパイラは、ソース
プログラムの計算式が最適化可能であるかどうかを判定
する10進最適化判定機能手段と、この10進最適化判
定機能手段で最適化可能であると判定された場合に動作
する10進乗除最適化機能手段とを設けたものである。
[作用] この発明においては、コンパイラのパック10進命令生
成機能の10進最適化判定機能によって、最適化が可能
であるかを乗算数および除数が10のn乗の定数である
かを判定することによって行い、最適化が可能である場
合、10進乗除最適化機能によって処理が行われる。
[実施例] 第1図はこの発明の一実施例によるパック10進命令生
成機能の機能構成を示すブロック図である0図において
、(IA)は乗算用パック10進命令生戒機能で、10
進最適化判定機能(IC〉および10進乗除最適化機能
(1d)を有している。
(2A)は醸算用パック10進命令生成機能で、10進
最適化判定機能(2C)および10進乗除最適化機能(
2d)を有している。
次に1この発明の詳細な説明する。前述の第8図のソー
スプログラムを10進乗除最適化コンパイラによりコン
パイルする場合を考える。構文解析部は全く同一である
ので従来と同様に第9図の中間コードが生成され、コー
ド生成部により処理される。第9図の■の中間コードは
2乗算用パック10進命令生成機能により第2図に示す
ように処理される。処理の流れは次のようになる。
(1)  ステップ(Sl)で、オペランド1が定数で
あるかどうかを判定する。この場合オペランド1は定数
であるので、ステップ(SIO)へ制御を移す。
(2〉 ステップ(SIO)で定数の値は10のn乗か
を判定し、この場合の定数の値“100”は10の2乗
であるので、ステップ(Sll)へ制御を移す。
(3)ステップ(Sll)でオペランド2の小数点位置
を右へ2ずらす。
オペランド2の属性は次のようになる。
・スタック ・整数部の桁数8 ・小数部の桁数1 パック10進データ形式 領域の大きさ8バイト ・値は不定 パック10進乗除最適化コンパイラにおいて。
第9図の中間コードから生成される機械語は第3図に示
すようになる。
次に、Bの内容に12.345が与えられている場合を
例にとり、パック10進乗除最適化コンパイラにより生
成された機械語を説明する。第4図は1機械語が実行さ
れた時のデータ名A、Bおよびコンパイラが演蒐を行う
ために作成する領域Tempの内容の移り変わりを示し
ている。ここで、Tempの内容は、■のPACK命令
によりBの内容が代入され(■の状態)9次に1機械語
を実行した効果とは別に小数点位置が右へ2つずれてい
る(■の状fi)、これは、第9図の■の中間コードの
処理における第1図のパック10進最適化判定機能およ
びパック10進乗除最適化機能による効果である。さら
に、第4図の■、■によりAの内容は1235.0とな
り、これは従来の演算結果と等しい。
[発明の効果] この発明は以上説明したとおり、パック10進最適化判
定機能およびパック10進乗除最適化機能を従来のコン
パイラに付加したため、従来のコンパイラが生成する機
械語より少ない機械語を生成しているので、プログラム
の実行時の時間性能および容量効率が向上する効果があ
る。
【図面の簡単な説明】
第1図はこの発明の一実施例によるパック10進命令生
成機能の機能構成ブロック図、第2図はこの発明の一実
施例による乗算用パック10進命令生成機能の処理フロ
ーチャート図、第3図は第9図に示す中間コードが第2
図によって処理される時に生成する機械語を示す図、第
4図は第3図の機械語が実行される時のデータ内容の移
り変わりを示す図、第5図は一般的なコンパイラの機能
構成を示す図、第6図は四則演算に関するコード生成部
の機械語構成図、第7図は従来のパック10進命令生戒
機能の機能構成図、第8図はパック10進命令生戒の動
作を説明するためのソースプログラムを示す図、第9図
は第5図の構文解析部で処理された中間コードを示す図
、第10図は第9図の中間コードのオペランドとして保
持される情報例を示す図、第11図は従来の乗算用パッ
ク10進命令生成機能の処理フローチャート図、第12
図は、第9図に示す中間コードが第11図によって処理
される時に生成する機械語を示す図。 第13図は第12図の機械語が実行された時のデータ内
容の移り変わりを示す図、である。 図において、(1c)、(2c)・・・10進最適化判
定機能、(1d)、(2d)・・・10進乗除最適化機
能である。 なお、各図中同一符号は同−又は相当部分を示す。 筋3図 LrT2 C P’5゜ 沸8図 I DENTIFrCATION PROGRAM−ID DMSi○N EIDAI FROCEDURE DIVISION STOP RIJN /1Jcal / ”Ia ノj\14々ニモ13桁 PUSH MULT DD OP 00 5 TOスタッフ TOスタック −−−−−(2) 一一一一■ −−−0 一一一一〇 O土ノ ■ Bの1:2]埼l釘11謙:(夕・ソフヘイ大入7る。 演算スタ・ンフのF118.(S100乏士圭ト(する
。 才Nラント・′外風千生 ・  定数/テニタ名/スタ・ン2 ・ 醤零d即の′79紋 ・ 小放剖のケタ歓 ・ T9形式 。 ・ 領域の大lさ @ 値 MULT   100   TO ンビ7・ンフ ・  整雀珀鞘のγり歓(x3 ・  ノJX堪丈そpのケタ数aO ・  ハiソフ10遁テニタ形主( −4負域9尺Q3(22バイト 0  4a(zloo 埠2才Nうント外昆牛生 ・  スタ・ソフ ・   瞥1りご諮pのγ9冬丈(コ3壷 小*jMo
>tljLtx3 0  ノぐラフ10進テ″−9@弐 ・  4負触曳′の大さζ(シロハイド・   イJl
 fl、月l ACK MP P RP NPK 箒12 Temp(8)、 B(4) T帥p(8)會LITI Temp(8)、 LIT2 Tamp(8)+−2+O AC3)tTemp(8) −−−の 一−−■ 一−−■ 一一一〇 一一一〇 (ンi) 0  /3の内容をノぐシフ10Rテニタ形弐代食3爽
しχに次Pへ4文人才る。 +JT/y)FI!@If圭ト(Ta。 LXγ20内容を乃Oえる。 CP間コート・・ 生残Cれる棟稙漆 躇り又0ない。 テータ円容功手多り隻ゎり

Claims (1)

    【特許請求の範囲】
  1.  パック10進データ形式の演算可能な電子計算機の1
    0進乗除最適化コンパイラにおいて、ソースプログラム
    の計算式が最適化可能であるかどうかを判定する10進
    最適化判定機能手段と、この10進最適化判定機能手段
    で最適化可能であると判定された場合に動作する10進
    乗除最適化機能手段とを設けたことを特徴とする10進
    乗除最適化コンパイラ。
JP21066789A 1989-08-17 1989-08-17 10進乗除最適化コンパイラ Pending JPH0374729A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21066789A JPH0374729A (ja) 1989-08-17 1989-08-17 10進乗除最適化コンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21066789A JPH0374729A (ja) 1989-08-17 1989-08-17 10進乗除最適化コンパイラ

Publications (1)

Publication Number Publication Date
JPH0374729A true JPH0374729A (ja) 1991-03-29

Family

ID=16593118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21066789A Pending JPH0374729A (ja) 1989-08-17 1989-08-17 10進乗除最適化コンパイラ

Country Status (1)

Country Link
JP (1) JPH0374729A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0627964U (ja) * 1992-09-04 1994-04-15 三菱樹脂株式会社 通気孔を有する二層管
US6761926B1 (en) 1994-12-27 2004-07-13 Visteon Global Technologies, Inc. Method for compressing viscous material through openings

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0627964U (ja) * 1992-09-04 1994-04-15 三菱樹脂株式会社 通気孔を有する二層管
US6761926B1 (en) 1994-12-27 2004-07-13 Visteon Global Technologies, Inc. Method for compressing viscous material through openings

Similar Documents

Publication Publication Date Title
Nayak et al. Precision and error analysis of MATLAB applications during automated hardware synthesis for FPGAs
Leupers Code selection for media processors with SIMD instructions
KR19990013698A (ko) 연산방법 및 연산장치
Leupers et al. Instruction selection for embedded DSPs with complex instructions
Bonet et al. SPARROW: a low-cost hardware/software co-designed SIMD microarchitecture for AI operations in space processors
JPH0374729A (ja) 10進乗除最適化コンパイラ
Li et al. Simple structured data initial SZG file's generation software design and implementation
JPS60140429A (ja) 10進乗算装置
Bjorn Multiresolution methods for financial time series prediction
Josephs et al. A programming approach to the design of asynchronous logic blocks
Mach Floating-point architectures for energy-efficient transprecision computing
US20060253522A1 (en) Large number mutpilication method and device
Evans et al. Itanium architecture for programmers: understanding 64-bit processors and EPIC principles
JP3755733B2 (ja) ソースの演算をターゲットの演算に翻訳する方法、記憶媒体、コンピュータ
Hohenauer et al. C Compilers for ASIPs
Svensson Occam-pi as a high-level language for coarse-grained reconfigurable architectures
JP6897213B2 (ja) コード生成装置、コード生成方法及びコード生成プログラム
Pope et al. Bifröst: Creating Hardware With Building Blocks
Tiemeyer et al. CREST: Hardware Formal Verification with ANSI-C Reference Specifications
JPH0223429A (ja) 平方根逆数の最適化処理方法
Mego et al. A tool for VLIW processors code optimizing
JPH0640337B2 (ja) パイプライン演算装置
Johnstone et al. Translator generation using ART
Hajizadeh et al. CuFP: An HLS Library for Customized Floating-Point Operators
Lin et al. Retargeting the open64 compiler to powerpc processor