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
Links
- 239000013598 vector Substances 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 78
- 238000007620 mathematical function Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、高級言語で記述されたソースプログラムを翻
訳してベクトル処理を実行することが可能な計算機シス
テムのオブジェクトプログラムを生成するコンパイラに
関する。
訳してベクトル処理を実行することが可能な計算機シス
テムのオブジェクトプログラムを生成するコンパイラに
関する。
(従来の技術)
数学組込み関数の値を求める場合、スカラ処理で求めた
場合とベクトル処理で求めた場合とでは、通常、アルゴ
リズムが異なるので、求めた関数の値には誤差の範囲内
で差異が生ずる。精度が要求されるプログラムの場合、
数学組込み関数をベクトル化することにより生ずる関数
値の差異が、実行結果に大きな影響を与えることもある
。
場合とベクトル処理で求めた場合とでは、通常、アルゴ
リズムが異なるので、求めた関数の値には誤差の範囲内
で差異が生ずる。精度が要求されるプログラムの場合、
数学組込み関数をベクトル化することにより生ずる関数
値の差異が、実行結果に大きな影響を与えることもある
。
従来、高級言語で記述されたソースプログラムを1訳し
てオブジェクトプログラムを生成するコンパイラにおい
ては、ベクトル化されるループ内で引用されている数学
組込み関数の値は常にベクトル処理で求められる。数学
組込み関数の値をスカラ処理で求めるためには、数学組
込み関数の引用を含むループ全体をスカラ処理とする必
要があった。
てオブジェクトプログラムを生成するコンパイラにおい
ては、ベクトル化されるループ内で引用されている数学
組込み関数の値は常にベクトル処理で求められる。数学
組込み関数の値をスカラ処理で求めるためには、数学組
込み関数の引用を含むループ全体をスカラ処理とする必
要があった。
(発明が解決しようとする課題)
上に述べた従来のコンパイラでは、ベクトル化されるル
ープ内で引用されている数学組込み関数の値をスカラ処
理で求めるためには、ループ全体をスカラ処理にする必
要があり、数学組込み関数の値のみをスカラ処理で求め
ることはできなかった。
ープ内で引用されている数学組込み関数の値をスカラ処
理で求めるためには、ループ全体をスカラ処理にする必
要があり、数学組込み関数の値のみをスカラ処理で求め
ることはできなかった。
従って、スカラ処理で実行した場合とベクトル処理で実
行した場合とで、実行結果が異なる場合、数学組込み関
数がベクトル化されたことにより生じた差異が原因なの
か、他に原因があるのかを知る事ができない、このよう
に従来のコンパイラには解決すべき課題があった。
行した場合とで、実行結果が異なる場合、数学組込み関
数がベクトル化されたことにより生じた差異が原因なの
か、他に原因があるのかを知る事ができない、このよう
に従来のコンパイラには解決すべき課題があった。
−(−課題を解決するための手段)
本発明のコンパイラは、上記目的を達成するために、高
級言語で記述されたソースプログラムを翻訳してベクト
ル処理を実行することが可能な計算機システムのオブジ
ェクトプログラムを生成するコンパイラにおいて、 ベクトル化される各数学組込み関数の値を、ベクトル処
理で求めるか、またはスカラ処理で求めるかを指定する
オプションを解析して数学組込み関数情報一覧テーブル
を生成するオプション解析手段と、 前記ソースプログラムを解析し、中間テキストを生成す
るソースプログラム解析手段と、該ソースプログラム解
析手段により生成された中間テキストを解析してオブジ
ェクトプログラムを生成する際、ベクトル化部分であり
且つ数学組込み関数を呼び出している中間テキストか否
かを判定する中間テキスト判定手段と、 該中間テキスト判定手段によりスカラ部分の中間テキス
ト、又は数学組込み関数を呼び出してい〉゛ないと判定
された中間テキストに対する命令列を生成する命令列生
成手段と、 前記中間テキスト判定手段によりベクトル化部分であり
且つ数学組込み関数を呼び出していると判定された中間
テキストに対し、該数学組込み関数の値をベクトル処理
で求めるか、又はスカラ処理で求めるかを数学組込み関
数情報一覧テーブルに基づいて判定する判定手段と、 該判定手段によりベクトル処理で求める数学組込み関数
と判定されたことにより、数学組込み関数の値をベクト
ル処理で求めるベクトル版数学組込み関数実行手続き呼
び出す命令列を生成するベクトル命令列生成手段と、 前記判定手段によりスカラ処理で求める数学組込み関数
と判定されたことにより、数学組込み関数がベクトル化
された場合でも、数学組込み関数の値をスカラ処理で求
める疑似ベクトル版数学組込み関数実行手続きを呼び出
す命令列を生成する疑似ベクトル命令列生成手段とを有
する。
級言語で記述されたソースプログラムを翻訳してベクト
ル処理を実行することが可能な計算機システムのオブジ
ェクトプログラムを生成するコンパイラにおいて、 ベクトル化される各数学組込み関数の値を、ベクトル処
理で求めるか、またはスカラ処理で求めるかを指定する
オプションを解析して数学組込み関数情報一覧テーブル
を生成するオプション解析手段と、 前記ソースプログラムを解析し、中間テキストを生成す
るソースプログラム解析手段と、該ソースプログラム解
析手段により生成された中間テキストを解析してオブジ
ェクトプログラムを生成する際、ベクトル化部分であり
且つ数学組込み関数を呼び出している中間テキストか否
かを判定する中間テキスト判定手段と、 該中間テキスト判定手段によりスカラ部分の中間テキス
ト、又は数学組込み関数を呼び出してい〉゛ないと判定
された中間テキストに対する命令列を生成する命令列生
成手段と、 前記中間テキスト判定手段によりベクトル化部分であり
且つ数学組込み関数を呼び出していると判定された中間
テキストに対し、該数学組込み関数の値をベクトル処理
で求めるか、又はスカラ処理で求めるかを数学組込み関
数情報一覧テーブルに基づいて判定する判定手段と、 該判定手段によりベクトル処理で求める数学組込み関数
と判定されたことにより、数学組込み関数の値をベクト
ル処理で求めるベクトル版数学組込み関数実行手続き呼
び出す命令列を生成するベクトル命令列生成手段と、 前記判定手段によりスカラ処理で求める数学組込み関数
と判定されたことにより、数学組込み関数がベクトル化
された場合でも、数学組込み関数の値をスカラ処理で求
める疑似ベクトル版数学組込み関数実行手続きを呼び出
す命令列を生成する疑似ベクトル命令列生成手段とを有
する。
(実施例)
茨に、本発明の実施例について、図面を参照して詳細に
説明する。
説明する。
第1図は、本発明の一実施例の構成図である。
コンパイラ1は、ソースプログラム及び利用者が指定し
たオプション情報を含むファイル2を入力する。オプシ
ョン解析手段11は、このオプション情報を解析し、数
学組込み関数名とこの数学組込み関数の値をベクトル処
理で求めるか又はスカラ処理で求めるかの情報とを、数
学組込み関数名毎に示した数学組込み関数情報一覧テー
ブル111を生成する。ソースプログラム解析手段12
は、ソースプログラムを解析して中間テキスト121を
生成する。中間テキスト読み込み手段13は、中間テキ
スト121を読み込み、命令生成手段14に加える。
たオプション情報を含むファイル2を入力する。オプシ
ョン解析手段11は、このオプション情報を解析し、数
学組込み関数名とこの数学組込み関数の値をベクトル処
理で求めるか又はスカラ処理で求めるかの情報とを、数
学組込み関数名毎に示した数学組込み関数情報一覧テー
ブル111を生成する。ソースプログラム解析手段12
は、ソースプログラムを解析して中間テキスト121を
生成する。中間テキスト読み込み手段13は、中間テキ
スト121を読み込み、命令生成手段14に加える。
命令生成手段14の中間テキスト判定手段141は、ベ
クトル化する部分であり、且つ数学組込み関数を呼び出
している中間テキストか否かを判定する。スカラ部分の
中間テキスト、または、数学組込み関数を呼び出してい
ない中間テキストでする場合には、通常の命令列生成手
段141Jにおいて命令列を生成する。
クトル化する部分であり、且つ数学組込み関数を呼び出
している中間テキストか否かを判定する。スカラ部分の
中間テキスト、または、数学組込み関数を呼び出してい
ない中間テキストでする場合には、通常の命令列生成手
段141Jにおいて命令列を生成する。
前記中間テキスト判定手段141においてベタ1ヘル化
する部分であり、且つ数学組込み関数を呼び出している
中間テキストである場合、選択手段142は、当該数学
組込み関数の値をベクトル処理で求めるか、又はスカラ
処理で求めるかを数学組込み関数・m@!一覧テーブル
111を参照して判定する。ベクトル処理で関数値を求
める数学組込み開数であった場合は、ベクトル命令列生
成手段1421において、数学組込み関数の値をベクト
ル処理で求めるベクトル版数学組込み関数実行手続きを
呼び出す命令列を生成する。選択手段142においてス
カラ処理で関数値を求める数学組込み関数と判定された
場合、疑似ベクトル命令列生成手段1422は、数学組
込み関数の値をスカラ処理で求める疑似ベクトル版数学
組込み開数実行手続きを呼び出す命令列を生成する。
する部分であり、且つ数学組込み関数を呼び出している
中間テキストである場合、選択手段142は、当該数学
組込み関数の値をベクトル処理で求めるか、又はスカラ
処理で求めるかを数学組込み関数・m@!一覧テーブル
111を参照して判定する。ベクトル処理で関数値を求
める数学組込み開数であった場合は、ベクトル命令列生
成手段1421において、数学組込み関数の値をベクト
ル処理で求めるベクトル版数学組込み関数実行手続きを
呼び出す命令列を生成する。選択手段142においてス
カラ処理で関数値を求める数学組込み関数と判定された
場合、疑似ベクトル命令列生成手段1422は、数学組
込み関数の値をスカラ処理で求める疑似ベクトル版数学
組込み開数実行手続きを呼び出す命令列を生成する。
このように構成したコンパイラにより、数学組込み関数
がベクトル化された場合でも、コンパイラ時のオプショ
ンにより、数学組込み関数毎に関数値をベクトル処理で
求めるかスカラ処理で求めるかを指定したオブジェクト
プログラム3を生成することが可能となる。
がベクトル化された場合でも、コンパイラ時のオプショ
ンにより、数学組込み関数毎に関数値をベクトル処理で
求めるかスカラ処理で求めるかを指定したオブジェクト
プログラム3を生成することが可能となる。
第2図は、疑似ベクトル版数学組込み関数実行手続き4
とスカラ版数学組込み関数実行手続き7とベクトルレジ
スタ5.6との関係を示す図である。第4図は疑似ベク
トル版数学組込み関数実行手続き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)。
ェクトプログラムからアーギュメント(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・・・疑似ベクトル命令列 生成手段。
スカラ版数学組込み関数実行手続き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)
- 【特許請求の範囲】 高級言語で記述されたソースプログラムを翻訳してベク
トル処理を実行することが可能な計算機システムのオブ
ジェクトプログラムを生成するコンパイラにおいて、 ベクトル化される各数学組込み関数の値を、ベクトル処
理で求めるか、またはスカラ処理で求めるかを指定する
オプションを解析して数学組込み関数情報一覧テーブル
を生成するオプション解析手段と、 前記ソースプログラムを解析し、中間テキストを生成す
るソースプログラム解析手段と、該ソースプログラム解
析手段により生成された中間テキストを解析してオブジ
ェクトプログラムを生成する際、ベクトル化部分であり
且つ数学組込み関数を呼び出している中間テキストか否
かを判定する中間テキスト判定手段と、 該中間テキスト判定手段によりスカラ部分の中間テキス
ト又は数字組込み関数を呼び出していないと判定された
中間テキストに対する命令列を生成する命令列生成手段
と、 前記中間テキスト判定手段によりベクトル化部分であり
且つ数学組込み関数を呼び出していると判定された中間
テキストに対し、該数学組込み関数の値をベクトル処理
で求めるか、又はスカラ処理で求めるかを前記数学組込
み関数情報一覧テーブルに基づいて判定する判定手段と
、 該判定手段によりベクトル処理で求める数学組込み関数
と判定されたことにより、前記数学組込み関数の値をベ
クトル処理で求めるベクトル版数学組込み関数実行手続
きを呼び出す命令列を生成するベクトル命令列生成手段
と、 前記判定手段によりスカラ処理で求める数学組込み関数
と判定されたことにより、数学組込み関数がベクトル化
された場合でも、数字組込み関数の値をスカラ処理で求
める疑似ベクトル版数学組込み関数実行手続きを呼び出
す命令列を生成する疑似ベクトル命令列生成手段と を設けてなることを特徴とするコンパイラ。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008264832A (ja) * | 2007-04-20 | 2008-11-06 | Toray Eng Co Ltd | 打鋲方法及び打鋲装置 |
-
1989
- 1989-09-28 JP JP25459089A patent/JPH03116241A/ja active Pending
Cited By (1)
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) | 並列/ベクトル化方法およびその手順が記録された記録媒体 |