JPH03116241A - コンパイラ - Google Patents

コンパイラ

Info

Publication number
JPH03116241A
JPH03116241A JP25459089A JP25459089A JPH03116241A JP H03116241 A JPH03116241 A JP H03116241A JP 25459089 A JP25459089 A JP 25459089A JP 25459089 A JP25459089 A JP 25459089A JP H03116241 A JPH03116241 A JP H03116241A
Authority
JP
Japan
Prior art keywords
mathematical
function
vector
built
intermediate text
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
JP25459089A
Other languages
English (en)
Inventor
Keiko Suzuki
景子 鈴木
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP25459089A priority Critical patent/JPH03116241A/ja
Publication of JPH03116241A publication Critical patent/JPH03116241A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、高級言語で記述されたソースプログラムを翻
訳してベクトル処理を実行することが可能な計算機シス
テムのオブジェクトプログラムを生成するコンパイラに
関する。
(従来の技術) 数学組込み関数の値を求める場合、スカラ処理で求めた
場合とベクトル処理で求めた場合とでは、通常、アルゴ
リズムが異なるので、求めた関数の値には誤差の範囲内
で差異が生ずる。精度が要求されるプログラムの場合、
数学組込み関数をベクトル化することにより生ずる関数
値の差異が、実行結果に大きな影響を与えることもある
従来、高級言語で記述されたソースプログラムを1訳し
てオブジェクトプログラムを生成するコンパイラにおい
ては、ベクトル化されるループ内で引用されている数学
組込み関数の値は常にベクトル処理で求められる。数学
組込み関数の値をスカラ処理で求めるためには、数学組
込み関数の引用を含むループ全体をスカラ処理とする必
要があった。
(発明が解決しようとする課題) 上に述べた従来のコンパイラでは、ベクトル化されるル
ープ内で引用されている数学組込み関数の値をスカラ処
理で求めるためには、ループ全体をスカラ処理にする必
要があり、数学組込み関数の値のみをスカラ処理で求め
ることはできなかった。
従って、スカラ処理で実行した場合とベクトル処理で実
行した場合とで、実行結果が異なる場合、数学組込み関
数がベクトル化されたことにより生じた差異が原因なの
か、他に原因があるのかを知る事ができない、このよう
に従来のコンパイラには解決すべき課題があった。
−(−課題を解決するための手段) 本発明のコンパイラは、上記目的を達成するために、高
級言語で記述されたソースプログラムを翻訳してベクト
ル処理を実行することが可能な計算機システムのオブジ
ェクトプログラムを生成するコンパイラにおいて、 ベクトル化される各数学組込み関数の値を、ベクトル処
理で求めるか、またはスカラ処理で求めるかを指定する
オプションを解析して数学組込み関数情報一覧テーブル
を生成するオプション解析手段と、 前記ソースプログラムを解析し、中間テキストを生成す
るソースプログラム解析手段と、該ソースプログラム解
析手段により生成された中間テキストを解析してオブジ
ェクトプログラムを生成する際、ベクトル化部分であり
且つ数学組込み関数を呼び出している中間テキストか否
かを判定する中間テキスト判定手段と、 該中間テキスト判定手段によりスカラ部分の中間テキス
ト、又は数学組込み関数を呼び出してい〉゛ないと判定
された中間テキストに対する命令列を生成する命令列生
成手段と、 前記中間テキスト判定手段によりベクトル化部分であり
且つ数学組込み関数を呼び出していると判定された中間
テキストに対し、該数学組込み関数の値をベクトル処理
で求めるか、又はスカラ処理で求めるかを数学組込み関
数情報一覧テーブルに基づいて判定する判定手段と、 該判定手段によりベクトル処理で求める数学組込み関数
と判定されたことにより、数学組込み関数の値をベクト
ル処理で求めるベクトル版数学組込み関数実行手続き呼
び出す命令列を生成するベクトル命令列生成手段と、 前記判定手段によりスカラ処理で求める数学組込み関数
と判定されたことにより、数学組込み関数がベクトル化
された場合でも、数学組込み関数の値をスカラ処理で求
める疑似ベクトル版数学組込み関数実行手続きを呼び出
す命令列を生成する疑似ベクトル命令列生成手段とを有
する。
(実施例) 茨に、本発明の実施例について、図面を参照して詳細に
説明する。
第1図は、本発明の一実施例の構成図である。
コンパイラ1は、ソースプログラム及び利用者が指定し
たオプション情報を含むファイル2を入力する。オプシ
ョン解析手段11は、このオプション情報を解析し、数
学組込み関数名とこの数学組込み関数の値をベクトル処
理で求めるか又はスカラ処理で求めるかの情報とを、数
学組込み関数名毎に示した数学組込み関数情報一覧テー
ブル111を生成する。ソースプログラム解析手段12
は、ソースプログラムを解析して中間テキスト121を
生成する。中間テキスト読み込み手段13は、中間テキ
スト121を読み込み、命令生成手段14に加える。
命令生成手段14の中間テキスト判定手段141は、ベ
クトル化する部分であり、且つ数学組込み関数を呼び出
している中間テキストか否かを判定する。スカラ部分の
中間テキスト、または、数学組込み関数を呼び出してい
ない中間テキストでする場合には、通常の命令列生成手
段141Jにおいて命令列を生成する。
前記中間テキスト判定手段141においてベタ1ヘル化
する部分であり、且つ数学組込み関数を呼び出している
中間テキストである場合、選択手段142は、当該数学
組込み関数の値をベクトル処理で求めるか、又はスカラ
処理で求めるかを数学組込み関数・m@!一覧テーブル
111を参照して判定する。ベクトル処理で関数値を求
める数学組込み開数であった場合は、ベクトル命令列生
成手段1421において、数学組込み関数の値をベクト
ル処理で求めるベクトル版数学組込み関数実行手続きを
呼び出す命令列を生成する。選択手段142においてス
カラ処理で関数値を求める数学組込み関数と判定された
場合、疑似ベクトル命令列生成手段1422は、数学組
込み関数の値をスカラ処理で求める疑似ベクトル版数学
組込み開数実行手続きを呼び出す命令列を生成する。
このように構成したコンパイラにより、数学組込み関数
がベクトル化された場合でも、コンパイラ時のオプショ
ンにより、数学組込み関数毎に関数値をベクトル処理で
求めるかスカラ処理で求めるかを指定したオブジェクト
プログラム3を生成することが可能となる。
第2図は、疑似ベクトル版数学組込み関数実行手続き4
とスカラ版数学組込み関数実行手続き7とベクトルレジ
スタ5.6との関係を示す図である。第4図は疑似ベク
トル版数学組込み関数実行手続き4の処理例を示す流れ
図である。
疑似ベクトル版数学組込み関数実行手続き4は、オブジ
ェクトプログラムからアーギュメント(31数)を含む
ベクトルレジスタ5の値を受は取り、受は取ったアーギ
ュメントを含むベクトルレジスタ5の値から一つのアー
ギュメントを取り出すくステップ541)。ステップ3
41によって取り出されたアーギュメントをアーギュン
メントとして、スカラ版数学組込み関数実行手続き7を
呼び出す、スカラ版数学組込み関数実行手続き7では、
スカラ版のアルコリズムを採用し、スカラ処理によって
関数値を求める。ぞして、関数値−1★むベクトルレジ
スタ6に、スカラ版数学組込み関数実行手続き7によっ
て求められた関数値を格納する(ステップ343)、ア
ーギュメントを含むベクトルレジスタ5に含まれる全て
のアーギュメントに対して係数値を求めたか否かを判定
しくステップ544)、全てのアーギュメントに対する
関数値を求めていない場合には、ステップS41に戻っ
て次のアーギュメントを取り出す。全てのアーギュメン
トに対する関数値を求めている場合には、関数値を含む
ベクトルレジスタ6の値をオブジェクトプログラム3に
返し、処理を終了する(ステップ545)。
また、ベクトル版数学組込み関数実行手続きでは、ベク
トル向けのアルゴリズムを採用し、ベクトル処理によっ
て、数学組込み関数の値を求める。
(発明の効果) 以上に説明したように、本発明のコンパイラによれば、
プログラムをスカラ処理で実行した場合とベクトル処理
で実行した場合とで実行結果が異なる場合、数学組込み
関数がベクトル化されたこどにより生じた差異が原因な
のか、他に原因かあるのかを容易に知ることができる。
【図面の簡単な説明】
第1図は本発明の一実施例の構成図、 第2図は疑似ベクトル版数学組込み関数実行手続き4と
スカラ版数学組込み関数実行手続き7とベクトルレジス
タ5.6との関係を示す図、第3図は疑似ベクトル版数
学組込み関数実行手続き4の処理例を示す流れ図である
。 1・・・コンパイラ、2・・・ファイル、3・・・オブ
ジェクトプログラム、4・・・疑似ベクトル版数学組込
み関数実行手続き、5・・・アーギュメントを含むベク
トルレジスタ、6・・・関数値を含むベクトルレジスタ
、7・・・スカラ版数学組込み間数実行手続き、11・
・・オプション解析手段、12・・・ソースプログラム
解析手段、13・・・中間テキスト読み込み手段、14
・・・命令生成手段、111・・・数学組込み関数情報
一覧テーブル、121・・・中間テキスト、141・・
・中間テキスト判定手段、142・・・判定手段、14
11・・・命令列生成手段、  42 1・・・ベクトル 命令列生成手段、  4 22・・・疑似ベクトル命令列 生成手段。

Claims (1)

  1. 【特許請求の範囲】 高級言語で記述されたソースプログラムを翻訳してベク
    トル処理を実行することが可能な計算機システムのオブ
    ジェクトプログラムを生成するコンパイラにおいて、 ベクトル化される各数学組込み関数の値を、ベクトル処
    理で求めるか、またはスカラ処理で求めるかを指定する
    オプションを解析して数学組込み関数情報一覧テーブル
    を生成するオプション解析手段と、 前記ソースプログラムを解析し、中間テキストを生成す
    るソースプログラム解析手段と、該ソースプログラム解
    析手段により生成された中間テキストを解析してオブジ
    ェクトプログラムを生成する際、ベクトル化部分であり
    且つ数学組込み関数を呼び出している中間テキストか否
    かを判定する中間テキスト判定手段と、 該中間テキスト判定手段によりスカラ部分の中間テキス
    ト又は数字組込み関数を呼び出していないと判定された
    中間テキストに対する命令列を生成する命令列生成手段
    と、 前記中間テキスト判定手段によりベクトル化部分であり
    且つ数学組込み関数を呼び出していると判定された中間
    テキストに対し、該数学組込み関数の値をベクトル処理
    で求めるか、又はスカラ処理で求めるかを前記数学組込
    み関数情報一覧テーブルに基づいて判定する判定手段と
    、 該判定手段によりベクトル処理で求める数学組込み関数
    と判定されたことにより、前記数学組込み関数の値をベ
    クトル処理で求めるベクトル版数学組込み関数実行手続
    きを呼び出す命令列を生成するベクトル命令列生成手段
    と、 前記判定手段によりスカラ処理で求める数学組込み関数
    と判定されたことにより、数学組込み関数がベクトル化
    された場合でも、数字組込み関数の値をスカラ処理で求
    める疑似ベクトル版数学組込み関数実行手続きを呼び出
    す命令列を生成する疑似ベクトル命令列生成手段と を設けてなることを特徴とするコンパイラ。
JP25459089A 1989-09-28 1989-09-28 コンパイラ Pending JPH03116241A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25459089A JPH03116241A (ja) 1989-09-28 1989-09-28 コンパイラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25459089A JPH03116241A (ja) 1989-09-28 1989-09-28 コンパイラ

Publications (1)

Publication Number Publication Date
JPH03116241A true JPH03116241A (ja) 1991-05-17

Family

ID=17267157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25459089A Pending JPH03116241A (ja) 1989-09-28 1989-09-28 コンパイラ

Country Status (1)

Country Link
JP (1) JPH03116241A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008264832A (ja) * 2007-04-20 2008-11-06 Toray Eng Co Ltd 打鋲方法及び打鋲装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008264832A (ja) * 2007-04-20 2008-11-06 Toray Eng Co Ltd 打鋲方法及び打鋲装置

Similar Documents

Publication Publication Date Title
US6425124B1 (en) Resource allocation device for reducing the size and run time of a machine language program
JPH03116241A (ja) コンパイラ
JP3840149B2 (ja) コンパイラ、演算処理システム及び演算処理方法
JPH06250877A (ja) 実行情報採取装置
JP3196625B2 (ja) 並列化コンパイル方式
JPH06202875A (ja) インライン展開による最適化を行うコンパイラ
JPH09288580A (ja) ソースプログラムの最適化装置および最適化方法
JP2864589B2 (ja) 関数値差異出力システム
JPH10116197A (ja) プログラム解析方法
JP3367438B2 (ja) 条件実行処理装置
JPS63155264A (ja) ベクトル計算機用言語チユ−ニング処理方式
JP3047418B2 (ja) ベクトル化処理方式
JPH02253472A (ja) ベクトル化方式
JPH04343140A (ja) コンパイラの最適化処理方法
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JPH02214974A (ja) ベクトル化処理方式
JPH02135529A (ja) コンパイル方式
JPH10326193A (ja) インライン展開関数の最適化のためのコンパイル方法
JPH04358264A (ja) ベクトル化処理方式
JPH03141432A (ja) コンパイラ
JPH10333919A (ja) 言語処理装置、計算機およびプログラムを記録した媒体
JPH04165537A (ja) プログラム自動インライン展開方式
JPH0573335A (ja) プログラムの自動インライン展開方式
JPH0399330A (ja) 手続きインライン展開方式
JP2000222369A (ja) 並列/ベクトル化方法およびその手順が記録された記録媒体