JPH01177165A - Definition-quotation relation checking system for array - Google Patents
Definition-quotation relation checking system for arrayInfo
- Publication number
- JPH01177165A JPH01177165A JP96188A JP96188A JPH01177165A JP H01177165 A JPH01177165 A JP H01177165A JP 96188 A JP96188 A JP 96188A JP 96188 A JP96188 A JP 96188A JP H01177165 A JPH01177165 A JP H01177165A
- Authority
- JP
- Japan
- Prior art keywords
- definition
- array
- source program
- citation relationship
- unknown
- 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
- 238000003780 insertion Methods 0.000 claims abstract description 21
- 230000037431 insertion Effects 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 14
- 238000007689 inspection Methods 0.000 claims description 43
- 238000001514 detection method Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- YASYVMFAVPKPKE-UHFFFAOYSA-N acephate Chemical compound COP(=O)(SC)NC(C)=O YASYVMFAVPKPKE-UHFFFAOYSA-N 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は配列の定義/引用関係検査方式に関し、特にベ
クトル命令を実行することが可能な計算機システムにお
ける配列の定義/引用関係検査方式〔従来の技術〕
従来、配列の定義/引用関係が静的なプログラム解析の
みでは不明なために原始プログラム中のループに対して
生成される命令にベクトル命令を適用する(以下、単に
「ループにベクトル命令を適用する」という)ことがで
きない場合(ベクトル命令を適用できるか否かが不確定
であるために結果として適用できない場合)には、コン
パイラによりその原始プログラムが翻訳される際にその
旨のメツセージ(後述する配列定義/引用関係不明ベク
トル化情報と同種の情fil)が出力されて当該ループ
に対して生成される命令にスカラ命令を適用する(以下
、単に「ループにスカラ命令を適用する」という)こと
が行われて目的プログラムが生成されていた。[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to an array definition/citation relationship checking method, and in particular to an array definition/citation relationship checking method [conventional] in a computer system capable of executing vector instructions. Conventionally, vector instructions are applied to instructions generated for loops in source programs because the array definition/quotation relationship is unclear only through static program analysis (hereinafter simply referred to as "vector instructions for loops"). If the vector instruction cannot be applied (because it is uncertain whether the vector instruction can be applied), the compiler will send a message to that effect when the source program is translated. Apply a scalar instruction to the instruction generated for the loop when (information file similar to the array definition/unknown citation relationship vectorization information described later) is output (hereinafter simply "applying a scalar instruction to the loop") ) was performed to generate the target program.
さらに、このようにして出力されたメツセージと生成さ
れた目的プログラムの実行動作とに基づいて、原始プロ
グラム中の当該ループにベクトル命令を適用しても問題
がないかどうかの判断のための配列の定義/引用関係の
検査(ベクトル命令の適用に関する配列の定義/引用関
係の検査)が利用者によって行われていた。Furthermore, based on the messages output in this way and the execution behavior of the generated target program, an array is created to determine whether there is no problem in applying a vector instruction to the loop in the source program. Inspection of definition/citation relationships (inspection of array definition/citation relationships regarding application of vector instructions) was performed by the user.
この検査で当該ループにベクトル命令を適用しても問題
がないと判断された場合には、原始プログラム中にその
旨を示す指示行が挿入され、その指示行が挿入された原
始プログラムが再びコンパイラによって翻訳されること
により当該ループにベクトル命令が適用されて実行され
る目的プログラムが生成されていた(上述の検査で当該
ループにベクトル命令を適用するには問題があると判断
された場合には、ループにスカラ命令が適用された目的
プログラムのままで実行が行われていた)。If it is determined that there is no problem in applying vector instructions to the loop in question, a directive line indicating this is inserted into the source program, and the source program with that directive line is recompiled. By translating this, a target program was generated that was executed by applying vector instructions to the loop. , the target program was executed with the scalar instructions applied to the loop).
上述のように、配列の定義/引用関係が静的なプログラ
ム解析のみでは不明なために原始プログラム中のループ
にベクトル命令を適用できない場合の従来のベクトル命
令の適用に関する配列の定義/引用関係の動的な検査は
、利用者等の人手による配列の定義/引用関係検査方式
により行われていた。As mentioned above, when it is not possible to apply vector instructions to a loop in a source program because the array definition/quotation relationship is unknown only by static program analysis, the conventional method for applying vector instructions to the array definition/quotation relationship is Dynamic inspection has been performed by a manual arrangement definition/citation relationship inspection method by a user or the like.
上述した従来の配列の定義/引用関係検査方式では、原
始プログラム中のループにおけるベクトル命令の適用に
関する配列の定義/引用関係の動的な検査がコンパイラ
によって出力されたメツセージとコンパイラによって生
成された目的プログラムの実行動作とに基づいて利用者
等の人手によって行われているので、検査の対象のプロ
グラム(原始プログラムおよび目的プログラム)が複雑
な場合には上述の配列の定義/引用関係の検査が困難で
ある(完全に検査するのは不可能な場合が多い)という
欠点がある。In the conventional array definition/quotation relationship checking method described above, dynamic checking of the array definition/quotation relationship regarding the application of vector instructions in a loop in a source program is performed using the messages output by the compiler and the purpose generated by the compiler. This is done manually by the user based on the execution behavior of the program, so if the program to be inspected (source program and target program) is complex, it is difficult to inspect the above-mentioned array definition/citation relationships. (which is often impossible to fully test).
特に、プログラムの利用者が作成者ではない場合にはプ
ログラムの正確な実行動作が利用者にとって不明な場合
が多いので、プログラムが複雑な場合でなくともベクト
ル命令の適用に関する配列の定義/引用関係の検査が困
難なものになるという欠点がある。In particular, if the user of the program is not the creator, the exact execution behavior of the program is often unknown to the user, so even if the program is not complex, the array definition/quotation relationship regarding the application of vector instructions The disadvantage is that it is difficult to test.
本発明の目的は、上述の点に鑑み、検査の対象のプログ
ラムが複雑な場合でもプログラムの利用者が作成者では
ない場合でも、ベクトル命令の適用に関する配列の定義
/引用関係の動的な検査を容易に行うことができる配列
の定義/引用関係検査方式を提供することにある。In view of the above-mentioned points, an object of the present invention is to dynamically inspect array definition/citation relationships regarding application of vector instructions, even when the program to be inspected is complex and even when the user of the program is not the creator. The object of the present invention is to provide an array definition/citation relationship inspection method that can easily perform the following.
本発明の配列の定義/引用関係検査方式は、原始プログ
ラム中の配列の定義/引用関係が不明なためにベクトル
命令を適用できないループに関する配列定義/引用関係
不明ベクトル化情報を検出するベクトル化情報検出部と
、配列の定義/引用関係が不明なためにベクトル命令を
適用できないループの直前に定義/引用関係検査サブル
ーチン呼出しコール文が挿入された原始プログラムであ
るコール文挿入原始プログラムを前記ベクトル化情報検
出部により検出された配列定義/引用関係不明ベクトル
化情報に基づき作成する原始プログラム作成部と、この
原始プログラム作成部により作成されたコール文挿入原
始プログラムに基づくロードモジュールを実行しその過
程で前記原始プログラム作成部により挿入された定義/
引用関係検査サブルーチン呼出しコール文によって呼び
出された定義/引用関係検査サブルーチンに基づき配列
の定義/引用関係が不明なためにベクトル命令を適用で
きないループにおけるベクトル命令の適用に関する配列
の定義/引用関係の動的な検査を行いその検査結果を出
力する定義/引用関係検査部とを有する。The array definition/citation relationship checking method of the present invention detects vectorization information with unknown array definition/citation relationship regarding loops to which vector instructions cannot be applied because the array definition/citation relationship in the source program is unknown. The detection unit and the call statement insertion source program, which is a source program in which a definition/citation relationship inspection subroutine call statement is inserted immediately before a loop in which vector instructions cannot be applied because the definition/citation relationship of the array is unknown, are vectorized. A source program creation section creates a source program based on the vectorization information with unknown array definition/citation relationship detected by the information detection section, and a load module based on the call statement insertion source program created by this source program creation section is executed. The definition inserted by the source program creation section/
Definition called by a citation relationship check subroutine call statement / Array definition based on the citation relationship check subroutine / Array definition / citation relationship behavior related to application of a vector instruction in a loop where a vector instruction cannot be applied because the citation relationship is unknown It has a definition/citation relationship inspection section that performs a general inspection and outputs the inspection results.
本発明の配列の定義/引用関係検査方式では、ベクトル
化情報検出部が原始プログラム中の配列の定義/引用関
係が不明なためにベクトル命令を適用できないループに
関する配列定義/引用関係不明ベクトル化情報を検出し
、原始プログラム作成部が配列の定義/引用関係が不明
なためにベクトル命令を適用できないループの直前に定
義/引用関係検査サブルーチン呼出しコール文が挿入さ
れた原始プログラムであるコール文挿入原始プログラム
をベクトル化情報検出部により検出された配列定義/引
用関係不明ベクトル化情報に基づき作成し、定義/引用
関係検査部が原始プログラム作成部により作成されたコ
ール文挿入原始プログラムに基づくロードモジュールを
実行しその過程で原始プログラム作成部により挿入され
た定義/引用関係検査サブルーチン呼出しコール文によ
って呼び出された定義/引用関係検査サブルーチンに基
づき配列の定義/引用関係が不明なためにベクトル命令
を適用できないループにおけるベクトル命令の適用に関
する配列の定義/引用関係の動的な検査を行いその検査
結果を出力する。In the array definition/citation relationship checking method of the present invention, the vectorization information detection unit detects array definition/citation relationship unknown vectorization information regarding a loop to which a vector instruction cannot be applied because the array definition/citation relationship in the source program is unknown. A call statement insertion source is a source program in which a definition/citation relationship check subroutine call call statement is inserted immediately before a loop in which vector instructions cannot be applied because the source program creation module detects the array definition/citation relationship. A program is created based on the unknown array definition/citation relationship vectorization information detected by the vectorization information detection unit, and the definition/citation relationship inspection unit creates a load module based on the call statement insertion source program created by the source program creation unit. During execution, the vector instruction cannot be applied because the array definition/citation relationship is unknown based on the definition/citation relationship inspection subroutine called by the definition/citation relationship inspection subroutine call statement inserted by the source program creation module. It dynamically inspects the array definition/quotation relationship regarding the application of vector instructions in a loop and outputs the inspection results.
次に、本発明について図面を参照して説明する。 Next, the present invention will be explained with reference to the drawings.
第1図は、本発明の配列の定義/引用関係検査方式の一
実施例の構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of an embodiment of the array definition/citation relationship checking method of the present invention.
本実施例の配列の定義/引用関係検査方式は、ベクトル
化情報検出部1 (FORTI’?ANコンパイラに
より実現される)と、原始プログラム作成部2と、翻訳
部3 (FORTRANコンパイラにより実現される
)と、リンク部4 (リンカにより実現される)と、定
義/引用関係検査部(ロードモジュール93を実行する
実行部により実現される)5と、原始プログラム6 (
FORTRANにより記述されている)と、配列定義/
引用関係不明ベクトル化情報7と、コール文挿入原始プ
ログラム8と、コンパイルユニット91と、定義/引用
関係検査サブルーチンコンパイルユニット92と、ロー
ドモジュール93と、検査結果94とから構成されてい
る。The array definition/citation relationship checking method of this embodiment consists of a vectorization information detection section 1 (realized by the FORTI'?AN compiler), a source program creation section 2, and a translation section 3 (realized by the FORTRAN compiler). ), a link unit 4 (realized by a linker), a definition/citation relation checking unit 5 (realized by an execution unit that executes the load module 93), and a source program 6 (
written by FORTRAN) and array definition/
It is composed of citation relationship unknown vectorization information 7, call statement insertion source program 8, compile unit 91, definition/citation relationship inspection subroutine compile unit 92, load module 93, and inspection result 94.
原始プログラム作成部2は、ベクトル化情報取得部21
と、原始プログラム入力部22と、原始プログラム解析
部23と、コール文挿入部24と、原始プログラム出力
部25とを含んで構成されている。The source program creation unit 2 includes a vectorization information acquisition unit 21
, a source program input section 22 , a source program analysis section 23 , a call statement insertion section 24 , and a source program output section 25 .
第2図は、配列定義/引用関係不明ベクトル化情報7の
一例を示す図である。この回を参照すると、配列定義/
引用関係不明ベクトル化情報7は、行番号71と、メツ
セージ番号72と、メツセージ部73とから構成されて
いる。FIG. 2 is a diagram showing an example of vectorization information 7 with unknown array definition/citation relationship. Referring to this episode, array definition/
The citation relation unknown vectorization information 7 is composed of a line number 71, a message number 72, and a message section 73.
第3図は、コール文挿入原始プログラム8の一例を示す
図である。この図を参照すると、コール文挿入原始プロ
グラム8は、定義/引用関係検査サブルーチン呼出しコ
ール文81および82を含んで構成されている。FIG. 3 is a diagram showing an example of the call statement insertion source program 8. Referring to this figure, the call statement insertion source program 8 includes definition/citation relationship checking subroutine call statements 81 and 82.
第4図は、コール文挿入原始プログラム8と定義/引用
関係検査サブルーチン原始プログラム(図示せず、定義
/引用関係検査サブルーチンコンパイルユニット92の
原始プログラム、なお、定義/引用関係検査サブルーチ
ン原始プログラムおよび定義/引用関係検査サブルーチ
ンコンパイルユニット92の処理の内容に言及する場合
には「定義/引用関係検査サブルーチン」という)との
間のインタフェースとして使用されるパラメータを示す
図である。FIG. 4 shows the call statement insertion source program 8 and the definition/citation relationship inspection subroutine source program (not shown, the source program of the definition/citation relationship inspection subroutine compilation unit 92, and the definition/citation relationship inspection subroutine source program and definition /Citation Relationship Inspection Subroutine When referring to the contents of the processing of the compilation unit 92, it is a diagram showing parameters used as an interface with the "Definition/Citation Relationship Inspection Subroutine").
次に、このように構成された本実施例の配列の定義/引
用関係検査方式の動作について説明する。Next, the operation of the array definition/citation relationship checking method of this embodiment configured as described above will be explained.
まず、配列の定義/引用関係が不明なためにベクトル命
令を適用できないループを有する原始プログラム6がF
ORTRANコンパイラによって翻訳される際に、この
FORTRANコンパイラにより実現されるベクトル化
情報検出部lにより配列の定義/引用関係が不明なため
にベクトル命令を適用できないループが検出され、その
ループに関する配列定義/引用関係不明ベクトル化情報
7 (該当するループ、該当する配列基および配列の定
義/引用関係が不明な箇所(行番号)等を明示して配列
の定義/引用関係が不明なためにそのループにベクトル
命令を適用できない旨を示す情fil)が第2図に示す
ような形式で出力される。First, source program 6 has a loop in which vector instructions cannot be applied because the array definition/quotation relationship is unknown.
When translated by the ORTRAN compiler, the vectorization information detection unit implemented by the FORTRAN compiler detects a loop to which vector instructions cannot be applied because the array definition/quotation relationship is unknown, and the array definition/quote relationship for that loop is detected. Unknown citation relationship vectorization information 7 (Specify the relevant loop, the corresponding array base, and the part (line number) where the array definition/quotation relationship is unknown, etc.) An information file indicating that the vector instruction cannot be applied is output in the format shown in FIG.
第2図に示す配列定義/引用関係不明ベクトル化情報7
においては、行番号71のr70J 、メンセ−ジ番号
72の「30」で識別されるメツセージ部73中のメツ
セージrUNsUrTABLE DATA REF
ERENCE RELATION、Jおよびメツセー
ジ部73中の付加情11rARRAY: A 80.
90Jにより、配列への定義/引用関係が行番号80お
よび90の文で不明なために行番号70から始まるルー
プにベクトル命令を適用できないことが示されている(
第3図中の70行〜90行参照)。同様に、行番号71
のr150 J 、メツセージ番号72の「30」で識
別されるメツセージ部73中のメツセージおよびメツセ
ージ部73中の付加情報「ARR八Yへ: X 16
0 、160 Jにより、配列Xの定義/引用関係が行
番号160の文で不明なために行番号150から始まる
ループにベクトル命令を適用できないことが示されてい
る(第3図中の150行および160行参照)。Sequence definition/unknown citation relationship vectorization information 7 shown in Figure 2
, the message rUNsUrTABLE DATA REF in the message section 73 identified by r70J in line number 71 and "30" in message number 72
ERENCE RELATION, J and additional information 11rARRAY in message section 73: A 80.
90J indicates that the vector instruction cannot be applied to the loop starting at line number 70 because the definition/quotation relationship to the array is unknown in the statements at line numbers 80 and 90 (
(See lines 70 to 90 in FIG. 3). Similarly, line number 71
r150 J, the message in the message section 73 identified by the message number 72 "30" and the additional information in the message section 73 "To ARR8Y: X 16
0, 160 J indicates that the vector instruction cannot be applied to the loop starting from line number 150 because the definition/citation relationship of array X is unknown in the statement at line number 160 (line 150 in Figure 3). and line 160).
次に、原始プログラム作成部2では、配列の定義/引用
関係が不明なためにベクトル命令を適用できないループ
の直前に定義/引用関係検査サブルーチンを呼び出すコ
ール文(定義/引用関係検査サブルーチン呼出しコール
文81および82等)が挿入された原始プログラム(コ
ール文挿入原始プログラム8)がベクトル化情報検出部
1により検出された配列定義/引用関係不明ベクトル化
情幸侵7に基づいて第3図に示すように作成される。Next, in the source program creation unit 2, a call statement (definition/citation relationship inspection subroutine call call statement) that calls a definition/citation relationship inspection subroutine immediately before a loop in which vector instructions cannot be applied because the definition/citation relationship of the array is unknown. 81, 82, etc.) is inserted (call statement insertion source program 8) is shown in FIG. Created as follows.
すなわち、まず原始プログラム入力部22により原始プ
ログラム6が入力され、ベクトル化情報取得部21によ
り配列定義/引用関係不明ベクトル化情報7が取得され
る。That is, first, the source program input section 22 inputs the source program 6, and the vectorization information acquisition section 21 acquires the vectorization information 7 with unknown array definition/citation relationship.
次に、原始プログラム6中の配列の定義/引用関係が不
明なためにベクトル命令を適用できないループが、配列
定義/引用関係不明ベクトル化情報7に基づいて原始プ
ログラム解析部23により検索される。Next, the source program analysis unit 23 searches for loops in the source program 6 to which vector instructions cannot be applied because the array definition/citation relationship is unknown, based on the array definition/citation relationship unknown vectorization information 7.
さらに、原始プログラム解析部23により検索されたル
ープの直前にベクトル命令の適用に関する配列の定義/
引用関係を検査するための定義/引用関係検査サブルー
チンを呼び出すコール文(定義/田川関係検査サブルー
チン呼出しコール文81(rCALL DEPCEK
(Nl、N2.N3゜K、J、−M、L)Jおよび定
義/引用関係検査サブルーチン呼出しコール文82(r
CALL DEPCEK (1,に−1,1,5,1
,1,O)」)が、コール文挿入部24により挿入され
る。Furthermore, the definition of an array related to the application of a vector instruction immediately before the loop searched by the source program analysis unit 23/
Definition for checking citation relationships/Call statement that calls the citation relationship inspection subroutine (Definition/Tagawa relationship inspection subroutine call call statement 81 (rCALL DEPCEK
(Nl, N2.N3゜K, J, -M, L) J and definition/citation relationship inspection subroutine call statement 82 (r
CALL DEPCEK (1, to -1,1,5,1
, 1, O)'') is inserted by the call statement insertion unit 24.
最後に、定義/引用関係検査サブルーチン呼出しコール
文81および82が挿入されたコール文挿入原始プログ
ラム8が、原始プログラム出力部25により出力される
。Finally, the source program output unit 25 outputs the call statement insertion source program 8 into which the definition/citation relationship inspection subroutine call statements 81 and 82 have been inserted.
このようにして原始プログラム作成部2から出力された
コール文挿入原始プログラム8は、翻訳部3 (FO
RTRANコンパイラ)により翻訳されてコンパイルユ
ニット91として出力される。The call statement insertion source program 8 output from the source program creation unit 2 in this way is translated into the translation unit 3 (FO
(RTRAN compiler) and output as a compilation unit 91.
コンパイルユニット91は、リンク部4 (リンカ)に
よりあらかじめ用意されている定義/引用関係検査サブ
ルーチンコンパイルユニット92(コール文挿入原始プ
ログラム8と第4図に示すようなパラメータによりイン
タフェースがとられている定義/引用関係検査サブルー
チン原始プログラムが翻訳されたコンパイルユニット、
第4図に示tパラメータにおいて第1パラメータおよび
第4パラメータを例示的に説明すると、第1パラメータ
は第3図中の定義/引用関係検査サブルーチン呼出しコ
ール文81の「N1」に該当するものでこの場合には7
0行から始まるDO小ループインデックス変数rlJの
初pJI値を示しており、第4パラメータは第3図中の
定義/引用関係検査サブルーチン呼出しコール文81の
rKJにJ亥当するものでこの場合には70行から始ま
るDOループ内でプログラムの実行順序で先に現れた配
列要素rA([J+K)J(配列要素rA (1*L−
M)Jよりも実行順序が先の配列要素)の1次元目(こ
の例では1次元のみしか存在しない)の添字式「I*J
+KJのインデックス変数rlJの値が0のときの値を
示している)と結合されてロードモジュール93が出力
される。The compile unit 91 executes a definition/citation relationship inspection subroutine compile unit 92 (definitions interfaced with the call statement insertion source program 8 and parameters as shown in FIG. 4) prepared in advance by the link unit 4 (linker). /The compilation unit in which the citation relationship check subroutine source program was translated,
To exemplify the first and fourth parameters in the t parameter shown in FIG. 4, the first parameter corresponds to "N1" of the definition/citation relationship inspection subroutine call statement 81 in FIG. In this case 7
It shows the initial pJI value of the DO small loop index variable rlJ starting from line 0, and the fourth parameter corresponds to rKJ of the definition/citation relationship inspection subroutine call statement 81 in FIG. is the array element rA([J+K)J(array element rA (1*L-
M) The subscript expression "I*J" of the first dimension (in this example, there is only one dimension) of the array element whose execution order is earlier than J
(indicates the value when the value of the index variable rlJ of +KJ is 0), and the load module 93 is output.
このようにして生成されたロードモジュール93は定義
/引用関係検査部5(実行部)により実行され、実行の
過程で定義/引用関係検査サブルーチンによりベクトル
命令の適用に関する配列の定義/引用関係が動的に検査
され、その検査の結果である検査結果94が定義/引用
関係検査部5によ、って自動的に出力される。The load module 93 generated in this way is executed by the definition/citation relationship inspection unit 5 (execution unit), and during the execution process, the definition/citation relationship of arrays related to the application of vector instructions is operated by the definition/citation relationship inspection subroutine. The definition/citation relation checking unit 5 automatically outputs a check result 94 that is the result of the check.
以上説明したように本発明は、配列の定義/引用関係が
静的なプログラム解析のみでは不明なためにベクトル命
令を適用できないループに対するベクトル命令の適用に
関する配列の定義/引用関係の動的な検査が利用者等の
人手を要することなく定義/引用関係検査サブルーチン
等の処理により自動的に行われることにより、検査の対
象のプログラムが複雑な場合でもプログラムの利用者が
−作成者ではない場合でもベクトル命令の適用に関する
配列の定n/引用関係の動的な検査を容易に行うことが
できるという効果がある。As explained above, the present invention provides dynamic inspection of array definition/quotation relationships regarding the application of vector instructions to loops in which vector instructions cannot be applied because the array definition/quotation relationships are unknown only through static program analysis. This is automatically performed by the definition/citation relation inspection subroutine, etc. without requiring any human intervention from the user, so even if the program to be inspected is complex, even if the user of the program is not the creator. This has the advantage that it is possible to easily dynamically check the constant n/quotation relationship of arrays regarding the application of vector instructions.
第1図は本発明の一実施例の構成を示すブロック図、
第2図は第1図中の配列定義/引用関係不明ベクトル化
情報の一例を示す図、
第3図は第1図中のコール文挿入原始プログラムの一例
を示す図、
第4図は第1図中のコール文挿入原始プログラムと定義
/引用関係検査サブルーチン原始プログラム(第1図中
の定義/引用関係検査サブルーチンコンパイルユニット
の原始プログラム)との間のインタフェースとして使用
されるパラメータを示す図である。
図において、
1・・・ベクトル化情報検出部、
2・・・原始プログラム作成部、
3・・・翻訳部、 。
4・・・リンク部、
5・・・定義/引用関係検査部、
6・・・原始プログラム、
7・・・配列定義/引用関係不明ベクトル化情報、
8・・・コール文挿入原始プログラム、21・・・ベク
トル化情報取得部、
22・・・原始プログラム入力部、
23・・・原始プログラム解析部、
24・・・コール文挿入部、
25・・・原始プログラム出力部、
71・・・行番号、
72・・・メツセージ番号、
73・・・メツセージ部、
81、82・定義/引用関係検査サブルーチン呼出しコ
ール文、
91・・・コンパイルユニット、
92・・・定義/引用関係検査サブルーチンコンパイル
ユニット、
93・・・ロードモジュール、
94・・・検査結果である。FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention. FIG. 2 is a diagram showing an example of vectorized information with unknown array definition/citation relationship in FIG. 1. A diagram showing an example of a call statement insertion source program. Figure 4 shows the call statement insertion source program in Figure 1 and the definition/citation relationship inspection subroutine source program (the source of the definition/citation relationship inspection subroutine compilation unit in Figure 1). FIG. 3 is a diagram showing parameters used as an interface between the program and the program. In the figure, 1... vectorization information detection unit, 2... source program creation unit, 3... translation unit. 4... Link section, 5... Definition/citation relationship inspection section, 6... Source program, 7... Array definition/unknown citation relationship vectorization information, 8... Call statement insertion source program, 21 ...Vectorization information acquisition section, 22.. Source program input section, 23.. Source program analysis section, 24.. Call statement insertion section, 25.. Source program output section, 71.. Line Number, 72... Message number, 73... Message part, 81, 82... Definition/citation relationship inspection subroutine call call statement, 91... Compilation unit, 92... Definition/citation relationship inspection subroutine compilation unit, 93...Load module, 94...Inspection results.
Claims (1)
めにベクトル命令を適用できないループに関する配列定
義/引用関係不明ベクトル化情報を検出するベクトル化
情報検出部と、 配列の定義/引用関係が不明なためにベクトル命令を適
用できないループの直前に定義/引用関係検査サブルー
チン呼出しコール文が挿入された原始プログラムである
コール文挿入原始プログラムを前記ベクトル化情報検出
部により検出された配列定義/引用関係不明ベクトル化
情報に基づき作成する原始プログラム作成部と、 この原始プログラム作成部により作成されたコール文挿
入原始プログラムに基づくロードモジュールを実行しそ
の過程で前記原始プログラム作成部により挿入された定
義/引用関係検査サブルーチン呼出しコール文によって
呼び出された定義/引用関係検査サブルーチンに基づき
配列の定義/引用関係が不明なためにベクトル命令を適
用できないループにおけるベクトル命令の適用に関する
配列の定義/引用関係の動的な検査を行いその検査結果
を出力する定義/引用関係検査部と、を有することを特
徴とする配列の定義/引用関係検査方式。[Scope of Claims] A vectorization information detection unit that detects vectorization information with unknown array definition/citation relationship regarding a loop to which a vector instruction cannot be applied because the definition/citation relationship of the array in the source program is unknown; and the definition of the array. /The vectorization information detection unit detects a call statement insertion source program, which is a source program in which a definition/citation relationship inspection subroutine call call statement is inserted immediately before a loop to which vector instructions cannot be applied because the citation relationship is unknown. A source program creation section that creates a source program based on vectorized information with unknown array definition/quotation relationship, and a load module based on the call statement insertion source program created by this source program creation section, and in the process inserts the call statement by the source program creation section. / Definition called by the citation relationship check subroutine call statement / Definition of an array based on the citation relationship check subroutine / Definition of an array related to application of vector instructions in a loop where vector instructions cannot be applied because the citation relationship is unknown / An array definition/citation relationship inspection method comprising: a definition/citation relationship inspection unit that dynamically inspects citation relationships and outputs the inspection results.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP96188A JPH01177165A (en) | 1988-01-05 | 1988-01-05 | Definition-quotation relation checking system for array |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP96188A JPH01177165A (en) | 1988-01-05 | 1988-01-05 | Definition-quotation relation checking system for array |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01177165A true JPH01177165A (en) | 1989-07-13 |
Family
ID=11488246
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP96188A Pending JPH01177165A (en) | 1988-01-05 | 1988-01-05 | Definition-quotation relation checking system for array |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01177165A (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5934494A (en) * | 1993-11-19 | 1999-08-10 | Mitsubishi Gas Chemical Company, Inc. | Packing for lid |
| JP2002179121A (en) * | 2000-12-06 | 2002-06-26 | Goglio Luigi Milano Spa | Selectively degassing valve for use in container for aromatic or smelly product |
| JP2013521572A (en) * | 2010-03-01 | 2013-06-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Apparatus, method, and computer program for executing aggressive code optimization capable of rolling back changes made by aggressive optimization |
| JP2016224812A (en) * | 2015-06-02 | 2016-12-28 | 富士通株式会社 | Parallel computing device, parallel processing method, parallel processing program, and compile program |
-
1988
- 1988-01-05 JP JP96188A patent/JPH01177165A/en active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5934494A (en) * | 1993-11-19 | 1999-08-10 | Mitsubishi Gas Chemical Company, Inc. | Packing for lid |
| JP2002179121A (en) * | 2000-12-06 | 2002-06-26 | Goglio Luigi Milano Spa | Selectively degassing valve for use in container for aromatic or smelly product |
| JP2013521572A (en) * | 2010-03-01 | 2013-06-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Apparatus, method, and computer program for executing aggressive code optimization capable of rolling back changes made by aggressive optimization |
| JP2016224812A (en) * | 2015-06-02 | 2016-12-28 | 富士通株式会社 | Parallel computing device, parallel processing method, parallel processing program, and compile program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7172435B2 (en) | Representation of software using abstract code graphs | |
| US8122440B1 (en) | Method and apparatus for enumerating external program code dependencies | |
| US5651111A (en) | Method and apparatus for producing a software test system using complementary code to resolve external dependencies | |
| EP0688448B1 (en) | Incremental build system | |
| US5255385A (en) | Method of testing program, and compiler and program testing tool for the method | |
| JPH05257709A (en) | Parallelism discriminating method and parallelism supporting method using the same | |
| US10853051B2 (en) | Automated candidate repair patch generation | |
| Agarwal et al. | Copilot evaluation harness: Evaluating llm-guided software programming | |
| JPH0748182B2 (en) | Program error detection method | |
| Novikov et al. | The approach to finding errors in program code based on static analysis methodology | |
| JPH01177165A (en) | Definition-quotation relation checking system for array | |
| Szalay et al. | Towards better symbol resolution for C/C++ programs: A cluster-based solution | |
| CN118193382B (en) | Application testing methods, apparatus, devices, storage media, and program products | |
| Lyons et al. | Lightweight multilingual software analysis | |
| Henry | A technique for hiding proprietary details while providing sufficient information for researchers; or, do you recognize this well-known algorithm? | |
| Gyén et al. | Code Comprehension for the Move Semantics in C+ | |
| JP2621555B2 (en) | Vectorization processing method | |
| JP2815178B2 (en) | Compiler unit | |
| JP3584204B2 (en) | Automatic source program converter | |
| JPH01154256A (en) | Detecting method for program error position | |
| JPH0355633A (en) | Inter-module interface check device | |
| Lamar et al. | ROSE LCOM Tools | |
| JPH04211831A (en) | Program verification method | |
| Alves et al. | Testing Framework Migration with Large Language Models | |
| Garstecki et al. | Testing for conformance of parallel programming pattern languages |