JPH0540780A - Vectorizing processing system - Google Patents

Vectorizing processing system

Info

Publication number
JPH0540780A
JPH0540780A JP19799591A JP19799591A JPH0540780A JP H0540780 A JPH0540780 A JP H0540780A JP 19799591 A JP19799591 A JP 19799591A JP 19799591 A JP19799591 A JP 19799591A JP H0540780 A JPH0540780 A JP H0540780A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
character
intermediate text
length
unit
parallel
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.)
Withdrawn
Application number
JP19799591A
Other languages
Japanese (ja)
Inventor
Osamu Nakanoya
修 仲野谷
Original Assignee
Nec Software Ltd
日本電気ソフトウエア株式会社
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

Links

Abstract

PURPOSE:To shorten the execution time of a program in a vector processor by vectorizing a character relation formula which is not vectorized in a conventional system. CONSTITUTION:In a vectorizing part 22, a condition discriminating part 221 discriminates whether the character relation formula satisfies the condition or parallel execution or not. When it is discriminated by the condition discriminating part 221 that the character relation formula can be executed in parallel, a loop constituting part 222 regards character type elements of this formula as an integer type array and makes a loop, where the relation formula is executed by repeated comparison of individual elements of the integer type array, to constitute a second intermediate text 25.

Description

【発明の詳細な説明】 DETAILED DESCRIPTION OF THE INVENTION

【0001】 [0001]

【産業上の利用分野】本発明は、ベクトル化処理方式に関する。 The present invention relates to a vector processing system.

【0002】 [0002]

【従来の技術】従来、ベクトル演算機能を有するベクトルプロセッサには、文字型演算を直接実行するベクトル命令は備えられておらず、文字関係式は、スカラ命令によって実行されていた。 Conventionally, the vector processor having a vector arithmetic function, vector instructions to perform character type operation directly is not provided, a character relationship has been performed by the scalar instruction.

【0003】 [0003]

【発明が解決しようとする課題】ベクトル演算機能を有するベクトルプロセッサにおいては、一般に、目的プログラムのうちのベクトル命令によって実行される部分の割合を大きくするほど、実行時間を短縮することができる。 In the vector processor having a vector arithmetic function [0005] In general, the larger the percentage of the portion that is performed by a vector instruction of the target program, it is possible to shorten the execution time. ところが、上述の従来技術では、文字関係式は、ベクトル化できず、スカラ命令で実行されているため、実行時間を短縮できない。 However, in the above-described related art, the character relation can not vectorized, since running in scalar instructions can not shorten the execution time.

【0004】また、文字関係式を人手によって並列実行に適合するように書き直すことにより、ベクトル化することも可能であるが、書き直し可能な文字関係式の発見やプログラムの書き直しに多大な時間を必要とする。 Further, by rewriting the character relational expression to fit the parallel execution by hand, it is also possible to vectorize, time consuming to rewrite the rewriting possible characters relationship discoveries and programs to. 更に、書き直し時に、誤りを生むおそれがある。 Further, at the time of rewriting, which may produce errors.

【0005】 [0005]

【課題を解決するための手段】本発明によるコンパイラのベクトル化処理方式は、ベクトル演算機能を有するベクトルプロセッサに対して、高級言語で書かれたソースプログラムを読み込み、構文解析を行なって第一の中間テキストを生成する構文解析部と、前記第一の中間テキストから並列実行可能部分の認識を行ない、かつ第二の中間テキストを生成するベクトル化部と、前記第二の中間テキストから目的プログラムを生成して出力するコード生成部とを有し、前記ベクトル化部が、文字関係式について並列実行可能な条件を満足するかどうかを判定する条件判定部と、前記条件判定部で並列実行可能と判定された文字関係式について、文字型要素を整数型の配列とみなし、かつ関係式を整数型の配列の一要素毎の比較の繰り返しで実行 Vectorization processing method of the compiler according to the present invention, in order to solve the problems], to the vector processor having a vector arithmetic function reads a source program written in a high level language, the first by performing syntax analysis a syntax analysis unit for generating an intermediate text, performs recognition of parallel executable portion from said first intermediate text, and the vectorization unit for generating a second intermediate text, the object program from the second intermediate text generated and a code generator outputting, the vectorization unit, and determines the condition determining unit whether to satisfy the parallel execution possible conditions for character relational expression, the parallel execution and by the condition determining unit for the determined character relational expression regards character elements as the integer array, and executes a relationship with repetition of the comparison for each part of an array of integer type るループとして前記第二の中間テキストを構成することにより、文字関係式をベクトル化するループ構成部とを有している。 That by configuring the second intermediate text as a loop, and a loop configuration unit for vectorizing the character relational expression.

【0006】 [0006]

【実施例】次に、本発明の一実施例を示した図面を参照して、より詳細に説明する。 EXAMPLES Next, with reference to the drawings showing an embodiment of the present invention will be described in more detail.

【0007】図1を参照すると、本発明の一実施例において、コンパイラ2は、高級言語で書かれたソースプログラム1を読み込み、構文解析を行なって第一の中間テキスト24を生成する構文解析部21と、第一の中間テキスト24から並列実行可能部分の認識を行ないかつ第二の中間テキスト25を生成するベクトル化部22と、 [0007] Referring to FIG. 1, in one embodiment of the present invention, the compiler 2 reads the source program 1 is written in a high level language, the syntax analysis unit for generating a first intermediate text 24 performs a syntax analysis 21, a vectorization unit 22 for generating a first from the intermediate text 24 performs recognition of parallel executable part and the second intermediate text 25,
第二の中間テキスト25から目的プログラム3を生成して出力するコード生成部23とから構成されている。 And a code generator 23 which generates and outputs the target program 3 from the second intermediate text 25.

【0008】ベクトル化部22は、文字関係式に対して並列実行可能な条件を満足するかどうかを判定する条件判定部221と、条件判定部221で並列実行可能と判定された文字関係式について文字型要素を整数型の配列とみなし、かつ関係式を整数型の配列の一要素毎の比較の繰り返しで実行するループとして第二の中間テキスト25を構成するループ構成部222とを備えている。 [0008] vectorization unit 22, a condition determination section 221 determines whether or not to satisfy a parallel executable condition for a character relational expressions, the character relational expression is determined to be executed in parallel condition determining unit 221 and a loop configuration unit 222 constituting the second intermediate text 25 as a loop that executes the character elements regarded as the integer array, and the relationship with the repetition of the comparison of each part of an array of integer type .

【0009】コンパイラ2内の構文解析部21は、ソースプログラム1を読み込み第一の中間テキスト24を生成する。 [0009] The syntax analysis unit 21 in the compiler 2 generates a first intermediate text 24 reads the source program 1. 例えば、図2に示したソースプログラムに対して図3に示した第一の中間テキストを生成する。 For example, to generate a first intermediate text shown in FIG. 3 with respect to the source program shown in FIG. ベクトル化部22は、第一の中間テキストを変更して図4のような第二の中間テキスト25を生成する。 Vectorization unit 22 changes the first intermediate text generating a second intermediate text 25 as shown in FIG. 4. コード生成部3は、第二の中間テキストから目的プログラム3を生成して出力する。 Code generation unit 3 generates and outputs the target program 3 from the second intermediate text.

【0010】ベクトル演算機能を有するベクトルプロセッサに対するコンパイラは、図1に示すような構成をしており、与えられたソースプログラムを可能な限り並列実行可能な形で目的プログラムに変換することが望まれる。 [0010] The compiler for the vector processor having a vector arithmetic function, it is desired to convert the object program structure was and capable parallel execution as possible given the source program form as shown in FIG. 1 . しかし、図5のようなソースプログラムが与えられたとすると、これは、右辺が文字関係式である代入文のため、並列実行不可としてスカラ命令による順次実行を余儀なくされていた。 However, when the source program shown in FIG. 5 is given, which, because of the assignment statement right is a character relational expression, had been forced to sequential execution by scalar instructions as not parallel execution.

【0011】本実施例においては、図5に示すような文字関係式を含むソースプログラムが与えられた場合においても、文字型要素を整数型の配列とみなし、かつ関係式を整数型の配列の一要素毎の比較の繰り返しで実行するループとすることにより、並列実行可能な形で処理するようにしている。 [0011] In the present embodiment, even when the source program including a character relational expression shown is given in Figure 5, consider the character element and the integer array, and relationship type integer sequences with loop that executes a repeating comparisons each an element, and to process in parallel executable form. 例えば、図5に示すプログラムでは、図6に示すように、文字型変数CH1*256とC For example, in the program shown in FIG. 5, as shown in FIG. 6, string variable CH1 * 256 and C
H2*256を整数型配列1A(64)と1B(64) H2 * 256 the integer array 1A (64) and 1B (64)
とみなし、かつ関係式を1A(I)と1B(I)とが一致するか否かを判定繰り返し数63のループ、および一致するか否かの判定のついた繰り返し数を添字とする整数型配列の比較で置き換えることにより、この文字関係式を置き換えたループの部分がベクトル長62で並列実行可能となる。 And regarded, and relation to 1A (I) and 1B (I) and matches whether the decision iterative number 63 of the loop, and matching whether an integer type to subscript marked with the number of repetitions of determination by replacing sequence comparison, portion of the loop by replacing the character relationship is possible parallel execution in vector length 62.

【0012】図5のソースプログラムから図7に示す第一の中間テキストが得られ、ベクトル化部22に入力され、文字関係式が認識されると、条件判定部221は次の処理を行なう。 [0012] The first intermediate text shown in FIG. 7 from the source program of FIG. 5 is obtained, are input to the vector unit 22, the character relation is recognized, the condition determining unit 221 performs the following processing.

【0013】(1) 文字関係式に対する第一の中間テキストから、関係式のオペランド1とオペランド2の文字型要素の長さを取り出す。 [0013] (1) from the first intermediate text for character relationship retrieves the length of the operand 1 and operand 2 character element relationship. オペランド1とオペランド2の文字型要素の長さが等しく、かつその長さが整数型要素の長さで割り切れれば、並列実行可能と判定する。 Operands 1 and equal length of the second character element, and if dividable its length by the length of the integral-type element, it is determined that they can be executed in parallel. 長さが上記条件を満たさなければ、並列実行不可と判定する。 If it satisfy the condition length, determines that the parallel execution impossible. 本実施例では、整数型要素の一要素の長さを「4」 In this embodiment, the length of an element of the integer type element "4"
と仮定しており、並列実行可能と判定する。 It is assumed to determine the possible parallel execution.

【0014】(2) 文字関係式に対する第一の中間テキストから、関係式の関係演算子を取り出す。 [0014] (2) from the first intermediate text for character relationship retrieves relational operator relation. 関係演算子が「.EQ.」と「.NE.」の場合は並列実行可能と判定する。 If relational operator as ".EQ." In ".NE." Determines possible parallel execution. 関係演算子が「.GT.」、「.G Relational operator ".GT.", ". G
E. E. 」、「.LT.」および「.LE.」の大小比較を行なう関係演算子の場合は、文字の大小比較を整数型の一要素長で行なえる文字コード体系を使用するシステムでは、並列実行可能と判定する。 ",". LT. "And in the case of relational operators for comparing the" .LE. "In a system using perform character coding system a character size comparison with an element length of integer type, parallel execution possible with the judges. 文字の大小比較を整数型の一要素長で行なえない文字コード体系を使用するシステムでは、並列実行不可と判定する。 In a system that the character size comparison using no character encoding scheme performed in an element length of integer type, determines that the parallel execution impossible. 本実施例では、 In this embodiment,
文字の大小比較を整数型の一要素長で行なえる文字コード体系を使用するシステムであることを仮定しており、 Is based on the assumption that the character size comparison with an element length of integer type is a system that uses perform character encoding scheme,
関係演算子「.GT.」では並列実行可能と判定する。 Relational operator ".GT." In determining the possible parallel execution.

【0015】条件判定部221では、並列実行可能と判定された文字関係式に対して、ループ構成部222は次の処理を行なう。 [0015] In the condition determination section 221, with respect to the parallel execution with the determined character relational expression, the loop structure portion 222 performs the following processing.

【0016】(1) オペランド1、オペランド2の文字型要素について第一の整数型配列、第二の整数型配列を作成し、文字型要素と結合する。 [0016] (1) operand 1, the first integer array for character elements operand 2, to create a second integer array, binds character elements. ここで作成する整数型配列の次元数は、「文字型要素の次元数+1」であり、その追加する次元の寸法は、「文字型要素の長さ/整数型要素の一要素の長さ」である。 Dimensionality integer sequence created here is a "character rank + 1 elements", the dimensions of the dimensions of the additional, "length of an element of length / type integer elements of character elements" it is. 本実施例では、整数型配列の次元数は「1」、寸法は「64」である。 In this embodiment, the number of dimensions of the integer array is "1", dimension "64".

【0017】(2) 整数型配列が一致するか否かを判定する部分を、ベクトル長が「(整数型要素の長さ)/整数型要素の長さ)−1」となるように、第二の中間テキストを作成する。 [0017] (2) determining portions whether integer array coincide, as the vector length is "(integer length of the element) / length of the integer type element) -1", the to create a second intermediate text. 本実施例では、ベクトル長は「63」となる。 In this embodiment, the vector length is "63".

【0018】(3) 第一の整数型変数を作成し、整数型配列が一致するか否かの判定のついた繰り返し数を格納する第二の中間テキストを作成する。 [0018] (3) to create a first integer variable, creating a second intermediate text for storing the number of repetitions with a determination of whether integer array match.

【0019】(4) 第一の論理型変数を作成し、第一の整数型変数を添字とする整数型配列で元の文字関係式の文字型要素を置き換えた関係式の結果を第一の論理型変数へ格納する第二の中間テキストを作成する。 [0019] (4) Create a first logical variables, the first integer variable the original integer type sequence of subscript characters equation character element replaced relational expression of the results first creating a second intermediate text to be stored in the logical variable.

【0020】(5) 元の関係式を第一の論理型変数で置き換えた第二の中間テキストを作成する。 [0020] (5) to create a second intermediate text of the original relationship was replaced by a first logical variable.

【0021】本実施例では、ループ構成部222により図8に示す第二の中間テキストが得られ、文字関係式の整数型配列が一致するか否かを判定する部分がベクトル長「63」のベクトル命令により実行される。 [0021] In this embodiment, the second intermediate text shown in FIG. 8 is obtained by the loop structure portion 222 determines partial whether integer array of character relational expression matches the vector length of "63" It is executed by the vector instruction.

【0022】以上のように、本実施例においては、文字関係式をベクトル化することができる。 [0022] As described above, in this embodiment, it is possible to vectorize characters relationship.

【0023】 [0023]

【発明の効果】以上説明したように、本発明においては、従来ベクトル化していなかった文字関係式をベクトル化できるため、ベクトルプロセッサにおいてプログラムの実行時間を短縮することができる。 As described in the foregoing, in the present invention, since the conventional vectorized have not been character relational expression can vectorization, it is possible to shorten the execution time of the program in the vector processor.

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】本発明の一実施例に使用されるコンパイラの機能ブロック図である。 1 is a functional block diagram of a compiler used in an embodiment of the present invention.

【図2】ソースプログラムの一例を示す図である。 2 is a diagram showing an example of a source program.

【図3】図2に示したソースプログラムに対する第一の中間テキストを示す図である。 3 is a diagram showing a first intermediate text for the source program shown in FIG.

【図4】図2に示したソースプログラムに対する第二の中間テキストを示す図である。 4 is a diagram showing a second intermediate text for the source program shown in FIG.

【図5】ソースプログラムの他の例を示す図である。 5 is a diagram showing another example of a source program.

【図6】図5に示したソースプログラムを変形することで文字関係式を並列実行可能にできることを示す図である。 6 is a diagram showing that a character relational expression can enable parallel execution by deforming the source program shown in FIG.

【図7】図5に示したソースプログラムに対する第一の中間テキストを示す図である。 7 is a diagram showing a first intermediate text for the source program shown in FIG.

【図8】図5に示したソースプログラムに対する第二の中間テキストを示す図である。 8 is a diagram showing a second intermediate text for the source program shown in FIG.

【符号の説明】 1 ソースプログラム 2 コンパイラ 3 目的プログラム 21 構文解析部 22 ベクトル化部 23 コード生成部 24 第一の中間テキスト 25 第二の中間テキスト 221 条件判定部 222 ループ構成部 [EXPLANATION OF SYMBOLS] 1 source program 2 compiler 3 object program 21 syntax analysis unit 22 vectorizing unit 23 code generation unit 24 first intermediate text 25 second intermediate text 221 condition determination unit 222 loop configuration unit

Claims (3)

    【特許請求の範囲】 [The claims]
  1. 【請求項1】 ベクトル演算機能を有するベクトルプロセッサに対して、高級言語で書かれたソースプログラムを読み込み、構文解析を行なって第一の中間テキストを生成する構文解析部と、 前記第一の中間テキストから並列実行可能部分の認識を行ない、かつ第二の中間テキストを生成するベクトル化部と、 前記第二の中間テキストから目的プログラムを生成して出力するコード生成部とを有するコンパイラのベクトル化処理方式において、 前記ベクトル化部が、 文字関係式について並列実行可能な条件を満足するかどうかを判定する条件判定部と、 前記条件判定部で並列実行可能と判定された文字関係式について、文字型要素を整数型の配列とみなし、かつ関係式を整数型の配列の一要素毎の比較の繰り返しで実行するループとして前 Respect 1. A vector processor having a vector arithmetic function reads a source program written in a high level language, the syntax analysis unit for generating a first intermediate text by performing syntax analysis, the first intermediate performs recognition of parallel executable part from the text, and vectorizing compiler having a vectorization unit for generating a second intermediate text, and a code generator for generating and outputting the desired program from said second intermediate text in the processing method, the vectorization unit, and determines the condition determining unit whether to satisfy the parallel execution possible conditions for character relational expression, the character relational expression is determined to be executed in parallel by the condition determining unit, character considers the type elements and the integer array and before a loop that executes the equation by repeating the comparison for each part of an array of integer type 第二の中間テキストを構成することにより、文字関係式をベクトル化するループ構成部とを有することを特徴とするベクトル化処理方式。 By configuring the second intermediate text, vector processing method characterized by having a loop configuration unit for vectorizing the character relational expression.
  2. 【請求項2】 前記条件判定部が、 文字関係式に対する第一の中間テキストから、関係式の第一のオペランドと第二のオペランドの文字型要素の長さを取り出し、第一および第二のオペランドの文字型要素の長さが等しくかつその長さが整数型要素の長さで割り切れれば、並列実行可能と判定することを特徴とする請求項1記載のベクトル化処理方式。 Wherein said condition determining unit, from the first intermediate text for character relationship retrieves the length of the first operand and character elements of the second operand relationship, first and second if and equal length of the character elements of the operand whose length divisible by the length of the integral-type elements, vector processing method according to claim 1, wherein determining that enables parallel execution.
  3. 【請求項3】 前記条件判定部が、 文字関係式に対する第一の中間テキストから、関係式の関係演算子を取り出し、関係演算子が大小比較を行なう関係演算子の場合は、文字の大小比較を整数型の一要素長で行なえる文字コード体系を使用するシステムでは、 Wherein the condition determining unit, from the first intermediate text for character relationship retrieves the relational operator relations, in the case of relational operators are relational operators perform magnitude comparison, character size comparison of in a system using the enable character code system in an element length of integer type,
    並列実行可能と判定し、文字の大小比較を整数型の一要素長で行なえない文字コード体系を使用するシステムでは、並列実行不可と判定することを特徴とする請求項2 Parallel execution and determines, claims a system that uses no character code system performing character size comparison with an element length of integer type, and judging parallel not executable 2
    記載のベクトル化方式。 Vector scheme described.
JP19799591A 1991-08-07 1991-08-07 Vectorizing processing system Withdrawn JPH0540780A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19799591A JPH0540780A (en) 1991-08-07 1991-08-07 Vectorizing processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19799591A JPH0540780A (en) 1991-08-07 1991-08-07 Vectorizing processing system

Publications (1)

Publication Number Publication Date
JPH0540780A true true JPH0540780A (en) 1993-02-19

Family

ID=16383764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19799591A Withdrawn JPH0540780A (en) 1991-08-07 1991-08-07 Vectorizing processing system

Country Status (1)

Country Link
JP (1) JPH0540780A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1754725A2 (en) 2005-08-17 2007-02-21 Nippon Shokubai Co.,Ltd. Production method of water-absorbent resin, water-absorbent resin, and usage of water-absorbent resin
US7960469B2 (en) 2003-06-24 2011-06-14 Nippon Shokubai Co., Ltd. Water absorbent resin composition and production method thereof
US9062140B2 (en) 2005-04-07 2015-06-23 Nippon Shokubai Co., Ltd. Polyacrylic acid (salt) water-absorbent resin, production process thereof, and acrylic acid used in polymerization for production of water-absorbent resin
US9090718B2 (en) 2006-03-24 2015-07-28 Nippon Shokubai Co., Ltd. Water-absorbing resin and method for manufacturing the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7960469B2 (en) 2003-06-24 2011-06-14 Nippon Shokubai Co., Ltd. Water absorbent resin composition and production method thereof
US9062140B2 (en) 2005-04-07 2015-06-23 Nippon Shokubai Co., Ltd. Polyacrylic acid (salt) water-absorbent resin, production process thereof, and acrylic acid used in polymerization for production of water-absorbent resin
EP1754725A2 (en) 2005-08-17 2007-02-21 Nippon Shokubai Co.,Ltd. Production method of water-absorbent resin, water-absorbent resin, and usage of water-absorbent resin
EP2287215A2 (en) 2005-08-17 2011-02-23 Nippon Shokubai Co., Ltd. Production method of water-absorbent resin, water-absorbent resin and usage of water-absorbent resin
US9090718B2 (en) 2006-03-24 2015-07-28 Nippon Shokubai Co., Ltd. Water-absorbing resin and method for manufacturing the same

Similar Documents

Publication Publication Date Title
Grune et al. Modern compiler design
Turchin The concept of a supercompiler
Batut et al. User's Guide to PARI-GP
Farrow Automatic generation of fixed-point-finding evaluators for circular, but well-defined, attribute grammars
US5963739A (en) Method for verifying the total correctness of a program with mutually recursive procedures
Gulwani et al. Spreadsheet data manipulation using examples
US6877155B1 (en) System and method for generating target language code utilizing an object oriented code generator
Flanagan Java in a Nutshell
US5142681A (en) APL-to-Fortran translators
US6748588B1 (en) One-pass greedy-pattern-matching finite-state-machine code generation
US5842205A (en) Method and process of inter-machine communication and generalized method for program preparation therefor
US20080281580A1 (en) Dynamic parser
Nordin et al. Efficient evolution of machine code for CISC architectures using instruction blocks and homologous crossover
US20050015759A1 (en) Method and system for translating programming languages
Allen et al. Automatic translation of Fortran programs to vector form
US5963742A (en) Using speculative parsing to process complex input data
US20080178149A1 (en) Inferencing types of variables in a dynamically typed language
Hutton et al. Monadic parsing in Haskell
Fokker Functional parsers
Manna et al. Deductive synthesis of the unification algorithm
US5321606A (en) Data transforming method using externally provided transformation rules
US5991539A (en) Use of re-entrant subparsing to facilitate processing of complicated input data
US6253371B1 (en) Method for supporting parallelization of source program
Kastens et al. Modularity and reusability in attribute grammars
US6286135B1 (en) Cost-sensitive SSA-based strength reduction algorithm for a machine with predication support and segmented addresses

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19981112