JPH05341966A - M系列乱数発生組み込み関数の最適化方式 - Google Patents

M系列乱数発生組み込み関数の最適化方式

Info

Publication number
JPH05341966A
JPH05341966A JP4177632A JP17763292A JPH05341966A JP H05341966 A JPH05341966 A JP H05341966A JP 4177632 A JP4177632 A JP 4177632A JP 17763292 A JP17763292 A JP 17763292A JP H05341966 A JPH05341966 A JP H05341966A
Authority
JP
Japan
Prior art keywords
text
innermost loop
random number
function
detecting means
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
JP4177632A
Other languages
English (en)
Other versions
JP2842057B2 (ja
Inventor
Yoshinori Tsuda
義典 津田
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 JP4177632A priority Critical patent/JP2842057B2/ja
Publication of JPH05341966A publication Critical patent/JPH05341966A/ja
Application granted granted Critical
Publication of JP2842057B2 publication Critical patent/JP2842057B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 ベクトル演算機能を有する計算機システムの
コンパイラの最適化方式に於いて、M系列乱数の発生処
理速度を向上させると共に生成された目的プログラムの
実行速度を向上させる。 【構成】 乱数発生組み込み関数検出手段6はM系列乱
数発生組み込み関数を含む最内側ループ対応の中間テキ
ストを検出し、変形可能テキスト検出手段7は乱数発生
組み込み関数検出手段6が検出した中間テキストが変形
可能か否かを判定する。テキスト変形手段9はM系列乱
数の発生個数が静的に定まる最内側ループ対応の中間テ
キストを、最内側ループの直前でM系列乱数をベクトル
演算により一括して発生し、最内側ループ内の処理を上
記発生したM系列乱数を用いて行なうように変形する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はベクトル演算機能を有す
る電子計算機システムに於けるコンパイラの最適化技術
に関し、特に、最内側ループ中に存在するM系列乱数発
生組み込み関数の最適化を行なうM系列乱数発生組み込
み関数の最適化方式に関する。
【0002】
【従来の技術】従来より、ベクトル演算機能を有する電
子計算機システムのコンパイラに於いては、最内側ルー
プ中のM系列乱数発生組み込み関数をベクトル化すると
いうことが行なわれているが、従来のコンパイラは最内
側ループ内に於いてM系列乱数発生組み込み関数をベク
トル化しているため、最内側ループに存在するM系列乱
数発生組み込み関数の数が1個の場合にしかベクトル化
を行なうことができなかった。
【0003】例えば、図3に示すように、M系列乱数発
生組み込み関数RANDM1( )が2個存在する最内側
ループの場合、A(1),A(2),…,A(100
0)の値はM系列乱数発生組み込み関数RANDM1
( )が第1番目,第3番目,…,第1999番目に発生
した乱数の値によって決まり、C(1),C(2),
…,C(1000)の値は第2番目,第4番目,…,第
2000番目に発生した乱数の値によって決まる。しか
し、最内側ループに於いてM系列乱数発生組み込み関数
RANDM1( )をベクトル化すると、A(1),A
(2),…,A(1000)の値はM系列乱数発生組み
込み関数RANDM1( )が第1番目,第2番目,…,
第1000番目に発生した乱数の値によって決まり、C
(1),C(2),…,C(1000)の値は第100
1番目,第1002番目,…,第2000番目に発生し
た乱数の値によって決まってしまい、ベクトル化した場
合としない場合とで処理結果が異なるものになってしま
う。
【0004】
【発明が解決しようとする課題】上述したように、従来
のコンパイラは最内側ループ内に存在するM系列乱数発
生組み込み関数の個数が1個の場合にしかベクトル化を
行なうことができなかったため、最内側ループにM系列
乱数発生組み込み関数が複数存在する場合、M系列乱数
の発生処理に多くの時間を要するという問題があった。
【0005】また、従来のコンパイラによって生成され
た目的プログラムの実行時、複数のM系列乱数発生組み
込み関数を含む最内側ループ内に於いてはM系列乱数が
スカラー演算によって発生させられるため、目的プログ
ラムの実行速度が遅くなるという問題もあった。
【0006】本発明の目的は、最内側ループに複数のM
系列乱数発生組み込み関数が存在する場合に於いても、
高速に乱数を発生させることができ、且つ、目的プログ
ラムの実行速度を高速化することができる乱数発生組み
込み関数の最適化方式を提供することにある。
【0007】
【課題を解決するための手段】本発明は上記目的を達成
するため、(A)ベクトル演算機能を有する電子計算機
システムのコンパイラに於いて、ソースプログラムから
中間テキスト群を生成するテキスト生成手段と、該テキ
スト生成手段が生成した中間テキスト群の中から最内側
ループに対応する中間テキストを検出する最内側ループ
テキスト検出手段と、該最内側ループテキスト検出手段
が検出した最内側ループに対応する中間テキストにM系
列乱数発生組み込み関数が含まれているか否かを判定す
る乱数発生組み込み関数検出手段と、該乱数発生組み込
み関数検出手段でM系列乱数発生組み込み関数が含まれ
ていると判定された最内側ループに対応する中間テキス
トを、最内側ループの直前に於いてM系列乱数をベクト
ル演算によって一括して発生するように変形することが
可能か否かを判定する変形可能テキスト検出手段と、該
変形可能テキスト検出手段で変形可能と判定された中間
テキストに対応する最内側ループの繰り返し数が静的に
定まるものである場合、前記最内側ループに於けるM系
列乱数の発生個数を求め、該発生個数が中間テキストの
変形を行なわない方が処理速度が速くなる個数の最大値
よりも大きいことにより、前記最内側ループに対応する
中間テキストを、最内側ループの直前に於いてM系列乱
数をベクトル演算によって一括して発生させ、最内側ル
ープ内の処理を前記最内側ループの直前に於いて発生さ
せたM系列乱数を用いて行なうように変形するテキスト
変形手段と、該テキスト変形手段で変形が済んだ中間テ
キスト群を用いて目的プログラムを生成する目的プログ
ラム生成手段とを設けたものである。
【0008】また、本発明は上記目的を達成するため、
(B)ベクトル演算機能を有する電子計算機システムの
コンパイラに於いて、ソースプログラムから中間テキス
ト群を生成するテキスト生成手段と、該テキスト生成手
段が生成した中間テキスト群の中から最内側ループに対
応する中間テキストを検出する最内側ループテキスト検
出手段と、該最内側ループテキスト検出手段が検出した
最内側ループに対応する中間テキストにM系列乱数発生
組み込み関数が含まれているか否かを判定する乱数発生
組み込み関数検出手段と、該乱数発生組み込み関数検出
手段でM系列乱数発生組み込み関数が含まれていると判
定された最内側ループに対応する中間テキストを、最内
側ループの直前に於いてM系列乱数をベクトル演算によ
って一括して発生するように変形することが可能か否か
を判定する変形可能テキスト検出手段と、該変形可能テ
キスト検出手段で変形可能と判定された中間テキストに
対応する最内側ループの繰り返し数がプログラムの実行
時に定まるものである場合、前記最内側ループに対応す
る中間テキストを、プログラムの実行時に定まるM系列
乱数の発生個数が中間テキストの変形を行なわない方が
処理速度が速くなる個数の最大値よりも大きければ、最
内側ループの直前に於いてM系列乱数をベクトル演算に
よって一括して発生させた後、最内側ループ内の処理を
前記最内側ループの直前に於いて発生させたM系列乱数
を用いて行ない、プログラムの実行時に定まるM系列乱
数の発生個数が中間テキストの変形を行なわない方が処
理速度が速くなる個数の最大値以下であれば、元のまま
の処理を行なうように変形するテキスト変形手段と、該
テキスト変形手段で変形が済んだ中間テキスト群を用い
て目的プログラムを生成する目的プログラム生成手段と
を設けたものである。
【0009】
【作用】(A)の構成に於いては、テキスト生成手段に
よってソースプログラムから中間テキスト群が生成さ
れ、最内側ループテキスト検出手段によって最内側ルー
プに対応する中間テキストが検出される。
【0010】その後、乱数発生組み込み関数検出手段に
よってM系列乱数発生組み込み関数を含む最内側ループ
が検出され、変形可能テキスト検出手段によってM系列
乱数発生組み込み関数を含む最内側ループが変形可能か
否かが判定される。
【0011】変形可能と判定された最内側ループの繰り
返し回数が静的に定まり、且つ最内側ループ内で発生す
るM系列乱数の個数が中間テキストの変形を行なわない
方が処理速度が速くなる個数の最大値よりも多い場合、
テキスト変形手段により、上記最内側ループに対応する
中間テキストが、最内側ループの直前に於いてM系列乱
数をベクトル演算によって一括して発生させ、最内側ル
ープ内の処理をその直前に於いて発生させたM系列乱数
を用いて行なうように変形させられる。
【0012】そして、目的プログラム生成手段が変形の
済んだ中間テキスト群を用いて目的プログラムを生成す
る。
【0013】(B)の構成に於いては、変形可能テキス
ト検出手段によって変形可能と判定された最内側ループ
の繰り返し回数がプログラムの実行時に定まるものであ
る場合、テキスト変形手段により、上記最内側ループに
対応する中間テキストが、プログラムの実行時に定まる
M系列乱数の発生個数が中間テキストの変形を行なわな
い方が処理速度が速くなる個数の最大値よりも大きけれ
ば、最内側ループの直前に於いてM系列乱数をベクトル
演算によって一括して発生させた後、最内側ループ内の
処理を前記最内側ループの直前に於いて発生させたM系
列乱数を用いて行ない、プログラムの実行時に定まるM
系列乱数の発生個数が中間テキストの変形を行なわない
方が処理速度が速くなる個数の最大値以下であれば、元
のままの処理を行なうように変形される。
【0014】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0015】図1は本発明の実施例のブロック図であ
り、ソースプログラム1をコンパイルして目的プログラ
ム12を生成するコンパイラ2は、テキスト生成手段3
と、最内側ループテキスト検出手段5と、乱数発生組み
込み関数検出手段6と、変形可能テキスト検出手段7
と、ループ繰り返し回数判定検出手段8と、第1,第2
のテキスト変形手段9,10と、目的プログラム生成手
段11とから構成されている。
【0016】テキスト生成手段3はソースプログラム1
を構文解析して中間テキスト群4を生成する機能を有す
る。
【0017】最内側ループテキスト検出手段5は中間テ
キスト群4の中から最内側ループに対応する中間テキス
トを捜し出す機能を有する。
【0018】乱数発生組み込み関数検出手段6は最内側
ループテキスト検出手段5が検出した最内側ループに対
応する中間テキストに基づいて最内側ループ中にM系列
乱数発生組み込み関数が存在するか否かを判定する機能
を有する。
【0019】変形可能テキスト検出手段7は乱数発生組
み込み関数検出手段6によってM系列乱数発生組み込み
関数が存在すると判定された最内側ループ対応の中間テ
キストが、第1,第2のテキスト変形手段9,10によ
る変形が可能か否かを判定する機能を有する。
【0020】ループ繰り返し回数判定検出手段8は変形
可能テキスト検出手段7で変形可能であると判定された
最内側ループの繰り返し回数が静的に定まるものなの
か、プログラムの実行時に定まるものなのかを判定す
る。
【0021】第1のテキスト変形手段9はループ繰り返
し回数判定検出手段8で繰り返し回数が静的に定まると
判定された最内側ループ中でM系列乱数発生組み込み関
数によって発生させられるM系列乱数の個数Nを求める
機能と、上記個数Nが予め定められている閾値S(最内
側ループの直前でM系列乱数をベクトル演算によって一
括して発生させるように変形するよりも、変形しない方
が乱数発生処理時間が短くなる乱数発生個数の最大値で
あり、実測により求められる値)よりも大きいか否かを
判定する機能と、個数Nの方が閾値Sよりも大きい場
合、上記最内側ループ対応の中間テキストを最内側ルー
プの直前でベクトル演算により一括して発生したM系列
乱数を用いて最内側ループ内の処理を行なうように変形
する機能を有する。
【0022】第2のテキスト変形手段10はループ繰り
返し回数判定検出手段8で繰り返し回数が静的に定まら
ないと判定された最内側ループ対応の中間テキストを、
プログラムの実行時に定まるM系列乱数の発生個数N’
が上記閾値Sよりも大きい場合は最内側ループの直前で
ベクトル演算により一括して発生したM系列乱数を用い
て最内側ループ内の処理を行ない、個数N’が閾値S以
下の場合は元のままの形で最内側ループ内の処理を行な
うように変形する機能を有する。
【0023】目的プログラム生成手段11は中間テキス
ト群4に基づいて目的プログラム12を生成する機能を
有する。
【0024】図2はコンパイラ2の処理例を示すフロー
チャートであり、以下各図を参照して本実施例の動作を
説明する。
【0025】ステップaを参照すると、コンパイラ2の
テキスト生成手段3がソースプログラム1を構文解析
し、中間テキスト群4を生成する。
【0026】ステップb〜eを参照すると、最内側ルー
プテキスト検出手段5は中間テキスト群4中の中間テキ
ストを生成された順に調べ、最内側ループに対応した中
間テキストを検出することにより、制御を乱数発生組み
込み関数検出手段6に渡す。
【0027】ステップf,gを参照すると、制御を渡さ
れた乱数発生組み込み関数検出手段6は最内側ループテ
キスト検出手段5が検出した最内側ループ対応の中間テ
キストに基づいて、上記最内側ループにM系列乱数発生
組み込み関数が含まれているか否かを判断し、含まれて
いない場合は最内側ループテキスト検出手段5に制御を
戻し、含まれている場合は変形可能テキスト検出手段7
に制御を渡す。
【0028】最内側ループテキスト検出手段5は制御を
戻されると、前述したステップb〜eの処理を行なう。
【0029】ステップh,iを参照すると、制御を渡さ
れた変形可能テキスト検出手段7は乱数発生組み込み関
数検出手段6でM系列乱数発生組み込み関数を含むと判
断された最内側ループが、第1,第2のテキスト変形手
段9,10による変形が可能か否かを判定し、変形不可
能な場合は制御を最内側ループテキスト検出手段5に戻
し、変形可能な場合は制御をループ繰り返し回数判定検
出手段8に渡す。
【0030】ここで、変形可能テキスト検出手段7は、
条件分岐命令を含んでいる最内側ループや、他の部分に
存在する分岐命令の分岐先となる最内側ループ等のよう
に、繰り返し回数がDO文によって指定された回数にな
らない惧れのある最内側ループを変形不可能な最内側ル
ープと判定する。
【0031】即ち、第1,第2のテキスト変形手段9,
10では最内側ループ対応の中間テキストを、最内側ル
ープの直前でベクトル演算により一括して発生したM系
列乱数を用いて最内側ループ内の処理を行なうように変
形するものであるので、もし、繰り返し回数がDO文に
よって指定された回数にならない最内側ループ対応の中
間テキストに対して上述した変形を行なうと、変形前の
処理と変形後の処理とが異なる意味を持つものになって
しまうからである。
【0032】ステップj,kを参照すると、制御を渡さ
れたループ繰り返し回数判定検出手段8は変形可能テキ
スト検出手段7で変形可能と判定された最内側ループの
繰り返し回数が静的に定まるか否かを判定し、静的に定
まると判定した場合は第1のテキスト変形手段9に制御
を渡し、静的に定まらないと判定した場合、即ちプログ
ラム実行時に定まると判断した場合は第2のテキスト変
形手段10に制御を渡す。
【0033】ステップlを参照すると、制御を渡された
第1のテキスト変形手段9は、先ず、ループ繰り返し回
数判定検出手段8で繰り返し回数が静的に定まると判定
された最内側ループ内に於いてM系列乱数発生組み込み
関数によって発生させられるM系列乱数の個数Nを求め
る。
【0034】次いで、第1のテキスト変形手段9は、上
記個数Nと予め定められている閾値Sとを比較する。そ
して、個数Nの方が閾値Sよりも大きい場合は、上記最
内側ループ対応の中間テキストを、最内側ループの直前
で指定された個数のM系列乱数をベクトル演算によって
一括して発生し、最内側ループ内の処理を上記発生した
M系列乱数を用いて行なうように変形した後、制御を最
内側ループテキスト検出手段5に戻し、個数Nが閾値S
以下の場合は、中間テキストの変形は行なわずに、制御
を最内側ループテキスト検出手段5に戻す。
【0035】今、例えば、変形対象にしている最内側ル
ープ部分の中間テキストが図3に示すソースプログラム
に相当するものであるとすると、第1のテキスト変形手
段9は変形対象の中間テキストを例えば図4に示すソー
スプログラムに相当する中間テキストに変形する。
【0036】図4のCALL RAMDM2(TEM
P,2000)は実引数の第2パラメータによって指定
された個数(2000個)のM系列乱数をベクトル演算
によって一括して発生し、発生したM系列乱数を第1パ
ラメータによって指定された要素数が2×1000の2
次元配列TEMPに設定する組み込みサブルーチンRA
MDM2を呼び出すCALL文である。ここで、実引数
の第1パラメータに要素数が2×1000の2次元配列
TEMPを設定し、第2パラメータが2000個を設定
しているのは、図3の例では、DO文によって指定され
ている最内側ループの繰り返し回数が1000回、最内
側ループ中に存在するM系列乱数発生組み込み関数RA
NDM1( )の個数が2個であり、最内側ループ内で発
生されるM系列乱数の数が2000個であるからであ
る。
【0037】また、図4では図3に於ける最内側ループ
中のM系列乱数発生組み込み関数RANDM1( )の部
分が2次元配列TEMPの参照に置き換えられている。
【0038】即ち、図4のソースプログラムは、先ず、
最内側ループの直前に於いて2000個のM系列乱数を
ベクトル演算によって一括して発生し、次いで、発生し
た2000個のM系列乱数を2次元配列TEMPに設定
し、その後、最内側ループ内分の処理を2次元配列TE
MPを参照して行ない、A(1)〜A(1000)及び
C(1)〜C(1000)の値を求めるものである。そ
の際、A(1)〜(A(1000)の値は2次元配列T
EMP(1,1)〜TEMP(1,1000)を用いて
求め、C(1)〜C(1000)の値は2次元配列TE
MP(2,1)〜TEMP(2,1000)を用いて求
めているので、ベクトル化した場合もベクトル化しない
場合と同じ処理結果を得ることができる。
【0039】このように、M系列乱数をベクトル演算に
より一括して発生させることにより、M系列乱数の発生
速度を高速化することが可能になる。また、最内側ルー
プ内のM系列乱数発生組み込み関数RANDM1( )を
2次元配列TEMPの参照に置き換え、最内側ループ内
にM系列乱数発生組み込み関数RANDM1( )を用い
た処理をなくすことにより、目的プログラムの実行速度
を速くすることが可能になる。即ち、最内側ループ内の
M系列乱数発生組み込み関数RANDM1( )を配列の
参照に置き換えると、M系列乱数発生組み込み関数RA
NDM1( )を実行してM系列乱数を発生させる場合に
必要であったその時の各レジスタの値をメモリに退避さ
せる処理、メモリに退避させてある値を各レジスタに復
元する処理が不要になるからである。
【0040】また、ステップmを参照すると、制御を渡
された第2のテキスト変形手段10はループ繰り返し回
数判定検出手段8で繰り返し回数が静的に定まらないと
判定された最内側ループ対応の中間テキストを、プログ
ラムの実行時に定まるM系列乱数の発生個数N’が上記
閾値Sよりも大きい場合は最内側ループの直前でベクト
ル演算により一括して発生したM系列乱数を用いて最内
側ループ内の処理を行ない、個数N’が閾値S以下の場
合は元のままの形で最内側ループ内の処理を行なうよう
に変形し、その後、最内側ループテキスト検出手段5に
制御を戻す。
【0041】今、例えば、変形対象にしている最内側ル
ープ部分の中間テキストが図5に示すソースプログラム
に相当するものであるとすると、第2のテキスト変形手
段10は変形対象の中間テキストを例えば図6に示すソ
ースプログラムに相当する中間テキストに変形する。
【0042】図6のソースプログラムに於いて、RAM
DM2は実引数の第2パラメータによって指定された個
数のM系列乱数を発生し、発生したM系列乱数を実引数
の第1パラメータによって指定された配列に設定する組
み込みサブルーチンの名前である。また、サブルーチン
名RAMDM2を有する組み込みサブルーチンはベクト
ル処理によってM系列の乱数を発生するものである。
【0043】この例の場合、図5に示すようにDO文に
よって指定される最内側ループの繰り返し回数はK回、
最内側ループ中に存在するM系列乱数発生組み込み関数
RANDM1( )の個数は2個であり、M系列乱数の発
生個数は2×K個となるので、図6に示すように、実引
数の第1パラメータには2×Kの要素数を有する2次元
配列TEMPが設定され、第2パラメータには2×Kが
設定される。
【0044】即ち、図6に示したソースプログラムは、
プログラムの実行時に定まるM系列乱数の発生個数(2
×K)が前述した閾値Sよりも大きい場合は最内側ルー
プの直前に於いて2×K個のM系列乱数をベクトル演算
によって一括して発生させる処理,発生させた2×K個
のM系列乱数を2次元配列TEMPに設定させる処理,
2次元配列TEMPを参照してA(I),C(I)を求
める処理を順次行ない、閾値S以下の場合はM系列乱数
発生組み込み関数RANDM1( )を用いてA(I),
C(I)を求める処理を行なうものである。
【0045】第1,第2のテキスト変形手段9、10の
処理が終了すると、制御は最内側ループテキスト検出手
段5に戻される。
【0046】ステップb,cを参照すると、制御を戻さ
れた最内側ループ検出手段5は中間テキスト群4から中
間テキストを取り出し、取り出していない中間テキスト
が存在する場合(ステップcがyesの場合)は制御を
乱数発生組み込み関数検出手段6に渡し、全ての中間テ
キストを取り出している場合(ステップcがnoの場
合)は目的プログラム生成手段11に制御を渡す。
【0047】ステップoを参照すると、制御を渡された
目的プログラム生成手段11は中間テキスト群4に基づ
いて目的プログラム12を生成する。その際、目的プロ
グラム生成手段11は第1,第2のテキスト変形手段
9,10によってM系列乱数発生組み込み関数部分が配
列の参照に置き換えられた最内側ループがベクトル化可
能であれば、それをベクトル化する。
【0048】
【発明の効果】以上説明したように、本発明は、M系列
乱数発生組み込み関数を含む最内側ループに対応する中
間テキストを、最内側ループの直前に於いてM系列乱数
をベクトル演算によって一括して発生させ、最内側ルー
プ内の処理を上記最内側ループの直前に於いて発生させ
たM系列乱数を用いて行なうようにしたものであるの
で、最内側ループ内にM系列乱数発生組み込み関数が複
数存在する場合でもベクトル化でき、M系列乱数の発生
処理速度を向上させることができる効果があると共に、
目的プログラムの実行速度を向上させることができる効
果がある。
【図面の簡単な説明】
【図1】本発明の実施例のブロック図である。
【図2】実施例の処理例を示すフローチャートである。
【図3】ソースプログラムの一例を示す図である。
【図4】図3のソースプログラムが最適化により同等と
なるソースプログラムの一例を示す図である。
【図5】ソースプログラムの一例を示す図である。
【図6】図5のソースプログラムが最適化により同等と
なるソースプログラムの一例を示す図である。
【符号の説明】
1…ソースプログラム 2…コンパイラ 3…テキスト生成手段 4…中間テキスト群 5…最内側ループテキスト検出手段 6…乱数発生組み込み関数検出手段 7…変形可能テキスト検出手段 8…ループ繰り返し回数判定検出手段 9…第1のテキスト変形手段 10…第2のテキスト変形手段 11…目的プログラム生成手段 12…目的プログラム

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ベクトル演算機能を有する電子計算機シ
    ステムのコンパイラに於いて、 ソースプログラムから中間テキスト群を生成するテキス
    ト生成手段と、 該テキスト生成手段が生成した中間テキスト群の中から
    最内側ループに対応する中間テキストを検出する最内側
    ループテキスト検出手段と、 該最内側ループテキスト検出手段が検出した最内側ルー
    プに対応する中間テキストにM系列乱数発生組み込み関
    数が含まれているか否かを判定する乱数発生組み込み関
    数検出手段と、 該乱数発生組み込み関数検出手段でM系列乱数発生組み
    込み関数が含まれていると判定された最内側ループに対
    応する中間テキストを、最内側ループの直前に於いてM
    系列乱数をベクトル演算によって一括して発生するよう
    に変形することが可能か否かを判定する変形可能テキス
    ト検出手段と、 該変形可能テキスト検出手段で変形可能と判定された中
    間テキストに対応する最内側ループの繰り返し数が静的
    に定まるものである場合、前記最内側ループに於けるM
    系列乱数の発生個数を求め、該発生個数が中間テキスト
    の変形を行なわない方が処理速度が速くなる個数の最大
    値よりも大きいことにより、前記最内側ループに対応す
    る中間テキストを、最内側ループの直前に於いてM系列
    乱数をベクトル演算によって一括して発生させ、最内側
    ループ内の処理を前記最内側ループの直前に於いて発生
    させたM系列乱数を用いて行なうように変形するテキス
    ト変形手段と、 該テキスト変形手段で変形が済んだ中間テキスト群を用
    いて目的プログラムを生成する目的プログラム生成手段
    とを含むことを特徴とするM系列乱数発生組み込み関数
    の最適化方式。
  2. 【請求項2】ベクトル演算機能を有する電子計算機シス
    テムのコンパイラに於いて、 ソースプログラムから中間テキスト群を生成するテキス
    ト生成手段と、 該テキスト生成手段が生成した中間テキスト群の中から
    最内側ループに対応する中間テキストを検出する最内側
    ループテキスト検出手段と、 該最内側ループテキスト検出手段が検出した最内側ルー
    プに対応する中間テキストにM系列乱数発生組み込み関
    数が含まれているか否かを判定する乱数発生組み込み関
    数検出手段と、 該乱数発生組み込み関数検出手段でM系列乱数発生組み
    込み関数が含まれていると判定された最内側ループに対
    応する中間テキストを、最内側ループの直前に於いてM
    系列乱数をベクトル演算によって一括して発生するよう
    に変形することが可能か否かを判定する変形可能テキス
    ト検出手段と、 該変形可能テキスト検出手段で変形可能と判定された中
    間テキストに対応する最内側ループの繰り返し数がプロ
    グラムの実行時に定まるものである場合、前記最内側ル
    ープに対応する中間テキストを、プログラムの実行時に
    定まるM系列乱数の発生個数が中間テキストの変形を行
    なわない方が処理速度が速くなる個数の最大値よりも大
    きければ、最内側ループの直前に於いてM系列乱数をベ
    クトル演算によって一括して発生させた後、最内側ルー
    プ内の処理を前記最内側ループの直前に於いて発生させ
    たM系列乱数を用いて行ない、プログラムの実行時に定
    まるM系列乱数の発生個数が中間テキストの変形を行な
    わない方が処理速度が速くなる個数の最大値以下であれ
    ば、元のままの処理を行なうように変形するテキスト変
    形手段と、 該テキスト変形手段で変形が済んだ中間テキスト群を用
    いて目的プログラムを生成する目的プログラム生成手段
    とを含むことを特徴とするM系列乱数発生組み込み関数
    の最適化方式。
JP4177632A 1992-06-11 1992-06-11 目的プログラム生成装置 Expired - Lifetime JP2842057B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4177632A JP2842057B2 (ja) 1992-06-11 1992-06-11 目的プログラム生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4177632A JP2842057B2 (ja) 1992-06-11 1992-06-11 目的プログラム生成装置

Publications (2)

Publication Number Publication Date
JPH05341966A true JPH05341966A (ja) 1993-12-24
JP2842057B2 JP2842057B2 (ja) 1998-12-24

Family

ID=16034398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4177632A Expired - Lifetime JP2842057B2 (ja) 1992-06-11 1992-06-11 目的プログラム生成装置

Country Status (1)

Country Link
JP (1) JP2842057B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115131847A (zh) * 2021-03-12 2022-09-30 佳能株式会社 信息处理设备和方法、图像识别系统、以及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115131847A (zh) * 2021-03-12 2022-09-30 佳能株式会社 信息处理设备和方法、图像识别系统、以及存储介质

Also Published As

Publication number Publication date
JP2842057B2 (ja) 1998-12-24

Similar Documents

Publication Publication Date Title
US4833606A (en) Compiling method for vectorizing multiple do-loops in source program
US5483470A (en) Timing verification by successive approximation
US4821181A (en) Method for converting a source program of high level language statement into an object program for a vector processor
EP4116885A1 (en) Processing method for neural network model, and related device
Berman et al. Functional comparison of logic designs for VLSI circuits
US5274812A (en) Method of compiling source code into vectorized object code by performing a one-dimensional analysis on each dimension of a multi-dimensional array within a loop
US12229529B2 (en) Program generation apparatus, program generation method and program
JPH0795274B2 (ja) 配列添字解析方法
US5522074A (en) Vectorization system for vectorizing loop containing condition induction variables
WO2020031802A1 (ja) 学習方法、学習装置、モデル生成方法及びプログラム
CN118504486B (zh) 一种适配约束求解器的方法、电子设备及存储介质
US5109523A (en) Method for determining whether data signals of a first set are related to data signal of a second set
JPH05341966A (ja) M系列乱数発生組み込み関数の最適化方式
CN118051234B (zh) 用于软硬件适配的方法、计算装置、介质和程序产品
JP2009211458A (ja) コンパイラ、変数最適化装置、方法、及び、プログラム
Kharitonov et al. Modeling function calls in program control flow in terms of Petri Nets
CN118092931A (zh) 基于指导语句的函数向量化方法及系统
JPH0764766A (ja) 並列計算機における最大・最小値演算方法
US12175242B2 (en) Decision tree node instruction unification for parallel processing
JPH04307624A (ja) ループ最適化方法及び装置
JP2956591B2 (ja) ループ外への条件付き飛び出しがあるループの並列化方法及び装置
JPH0594470A (ja) ベクトル化方式
JP2000163266A (ja) 命令実行方式
JPH0512033A (ja) 並列化コンパイル方式
CN121560331A (zh) 基于多级中间表示的参数化编译优化方法及系统