JPH0812606B2 - ループ構成ブロックの決定処理方式 - Google Patents

ループ構成ブロックの決定処理方式

Info

Publication number
JPH0812606B2
JPH0812606B2 JP9929385A JP9929385A JPH0812606B2 JP H0812606 B2 JPH0812606 B2 JP H0812606B2 JP 9929385 A JP9929385 A JP 9929385A JP 9929385 A JP9929385 A JP 9929385A JP H0812606 B2 JPH0812606 B2 JP H0812606B2
Authority
JP
Japan
Prior art keywords
basic block
loop
basic
entrance
block
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.)
Expired - Lifetime
Application number
JP9929385A
Other languages
English (en)
Other versions
JPS61259341A (ja
Inventor
誠 中西
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP9929385A priority Critical patent/JPH0812606B2/ja
Publication of JPS61259341A publication Critical patent/JPS61259341A/ja
Publication of JPH0812606B2 publication Critical patent/JPH0812606B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Description

【発明の詳細な説明】 〔概要〕 基本ブロック列中に存在するループを検出しかつどの
基本ブロックがどのループに属するかを検出するループ
構成ブロックの決定処理方式において,プログラムの入
口側からの到達距離順に上記基本ブロックを並べたサク
セッサ方向検索テーブルを用意し,ループの入口を予め
抽出した状態の下で,当該ループに属する基本ブロック
を決定するように処理し,ループ検出処理の処理速度を
向上することが開示されている。
〔産業上の利用分野〕
本発明は,ループ構成ブロックの決定処理方式,特に
基本ブロック列中のループと当該ループに属する基本ブ
ロックを検出する処理に当たって,ループの入口を予め
抽出した状態の下で,当該ループに属する基本ブロック
を決定するように処理したループ構成ブロックの決定処
理方式に関する。
〔従来の技術〕
与えられたソース・プログラムから所定のオブジェク
ト・プログラムを得る過程においては,中間言語の命令
列が得られ,当該中間言語の命令列にもとづいて例えば
最適化のための処理が行われた上で上記オブジェクト・
プログラムが生成される。上記最適化のための処理など
のために,上記中間言語の命令列における1つまたは複
数個の命令について1つの基本ブロックを対応づけ,基
本ブロック列を得て,当該基本ブロック列にもとづいて
ループの存在や当該各ループに属する基本ブロックを検
出することが行われる。即ち,当該ループを検出して上
記最適化のための処理などが適用される。
第3図は基本ブロック列の一例を示しており,図中の
,,……は夫々基本ブロックである。図示の場合,
例えば(i)基本ブロックは基本ブロックととに
夫々到達し,(ii)基本ブロックは基本ブロックと
とから到達され,(iii)基本ブロックは基本ブロ
ックととから到達され,(iv)基本ブロックは基
本ブロックととから到達されかつ基本ブロックと
とに到達し,(V)……の如き関係をもっている。
第3図図示の基本ブロック例えばは基本ブロック
を入口とするループ(I)に属しており,当該ループの
バック・ターゲットが基本ブロックであることから,
当該ループ(I)に属する基本ブロックととに対応
して基本ブロックがバック・ターゲットとして記述さ
れる。また基本ブロックととはループ(II)に属
し,バック・ターゲットとして基本ブロックが与えら
れる。更に基本ブロックはループ(III)に属し,バ
ック・ターゲットとして基本ブロックが与えられる。
なお,例えば基本ブロックに着目して,(i)プリデ
ィセッサ方向(以下IP方向という)とは基本ブロック
やへの方向であり,(ii)サクセッサ方向(以下IS方
向という)とは基本ブロックへの方向であり,(ii
i)バック・ドミネータ(イミーデート・バック・ドミ
ネータ)とは当該基本ブロックに到達する上で必ず通
過しなくてはならない基本ブロックのうちで最も近い基
本ブロックを言い,(iv)バック・ターゲットとは当
該基本ブロックが属しているループ(II)の入口の直
前の基本ブロックを言う。
上記ループ検出に当たっては,従来,次の如き処理が
行われていた。即ち,第3図図示の各個々の基本ブロッ
ク,,…毎に,例えば基本ブロックについて言え
ば, A)基本ブロックからバック・ドミネータのチェーン
をたどり(即ち基本ブロック,,,をたど
り),ループ(I)の入口である基本ブロックを検出
し, B)次いで当該入口の基本ブロックから,バック・タ
ーゲットである基本ブロックへの方向以外のIP方向に
たどり,自己基本ブロックに到達するか否かを調べ, C)そして,上記処理A)とB)とによって,入口が見
出されかつ自己に到達されることをもって,ループが存
在しかつ自己基本ブロックが当該ループに属している
と決定し,…… の如き処理を行い,すべての基本ブロック,…につ
いてチェックを行っていた。
〔発明が解決しようとする問題点〕
従来上記の如き処理が行われていた。即ち,ループの
入口の検出と自己が当該ループに属するか否かの検出と
を,個々の基本ブロック毎に行っていた。このために或
る基本ブロックについてのループの入口が明らかに直前
にチェックした基本ブロックのそれと同じであるとみな
され得る場合でも,同じようなチェックを行い,また同
じループに属することが明らかな場合でも同じチェック
を行うこととなり,処理速度が遅くなる難点をもってい
た。
〔問題点を解決するための手段〕
本発明は,上記の点を解決するようにしており,ルー
プの入口の検出をまとめて行っておいた上で,当該検出
されているループの入口から一周まわって当該ループの
入口に戻ることを確認して個々の基本ブロックがいずれ
かのループに属するか否かをチェックするようにし,処
理速度を高めるようにしている。
第1図は本発明の原理構成図を示し,図中の符号,
…は夫々基本ブロック,1はサクセッサ方向検索テーブ
ル,2は入口指示フラグ情報,3は基本ブロック辞書参照情
報を表している。また4は基本ブロック列を表してい
る。
サクセッサ方向検索テーブル1においては,プログラ
ムの入口(例えば図示(A)においては基本ブロック
がプログラムの入口とする)から,到達可能な基本ブロ
ックについて到達距離順に,基本ブロック,,,
…と並べた形で,夫々の基本ブロックについての情報が
用意される。当該各情報には,当該基本ブロックがルー
プの入口であるか否かの入口指示フラグ情報2と,当該
基本ブロックに対応して用意されている基本ブロック辞
書(第2図参照)を参照するための情報3とが与えられ
る。
〔作用〕
第2図を参照して説明する如く,各基本ブロック,
…には夫々に対応して基本ブロック辞書が用意されて
おり,これによって第1図(A)図示の如き基本ブロッ
ク列4が特定されていると考えてよい。
当該基本ブロック辞書の群にもとづいて,上述の如く
プログラムの入口からの到達距離の順にサクセッサ方向
検索テーブル1がつくられる。そして,当該テーブル1
に記述された基本ブロックの順に,従来と同様に,バッ
ク・ドミネータのチェーンをたどって,各ループ(I)
(II)(III)の入口を抽出し,フラグ情報を立てる。
なおこの間の入口抽出の処理は,従来から支配関係法と
して知られている所である。
次いでループの入口例えば基本ブロックから,バッ
ク・ターゲット(図示の場合基本ブロック)への方向
以外のIP方向にたどってゆき,基本ブロック,,
,,に対応して,基本ブロックがバック・ター
ゲットである旨の情報を記述する。即ち,各対応する基
本ブロック辞書中に記述する。
次いで次の入口である基本ブロックから同様にIP方
向にたどり,基本ブロック,,に対応して,バッ
ク・ターゲットが基本ブロックであることを上記一旦
記述したものの上にオーバライトする。そして、次の入
口である基本ブロックから同様にIP方向にたどり,基
本ブロックに対応して,バック・ターゲットが基本ブ
ロックであることを更にオーバライトする。このよう
にして,ループと当該ループに属する基本ブロックとが
検出される。
〔実施例〕
第2図は本発明の一実施例構成を示し,図中の符号1,
2,3は第1図に対応し,5A,5B,5C……5Gは夫々基本ブロッ
ク辞書,IDA,IDB,…は夫々基本ブロック辞書参照情報の
内容,Sはサクセッサ方向検索レベル情報,Tはバック・タ
ーゲット基本ブロック辞書参照情報を表している。,
,……はサクセッサ方向検索レベル情報の内容を表
している。
第1図を参照して説明した如く,各基本ブロック,
…に対応して基本ブロック辞書5A,5B…が用意されて
おり,当該辞書中において,サクセッサ方向検索レベル
情報Sは最初値「0」でありかつバック・ターゲット基
本ブロック辞書参照情報Tは最初「空」である。
第1図を参照して説明した如く,サクセッサ方向検索
テーブル1がつくられるとき,上記プログラムの入口の
基本ブロック(図示の場合には基本ブロックとする)
から,テーブル1上に枠が用意され,情報IDAが記述さ
れ,辞書5A上の情報Sとして値「1」が記述される。次
いで,基本ブロックBにおいて,辞書5B上の情報Sが値
「0」であることを確かめた上で,テーブル1上に枠が
用意され,情報IDBが記述され,辞書5B上の情報Sとし
て値「2」が記述される。次いで基本ブロックCに関し
て,テーブル1上に情報IDCが記述され,辞書5C上の情
報Sとして値「3」が記述され,………る。
この状態の下で,テーブル1の内容をたどって,入口
指示フラグ情報が基本ブロック,,に対応して立
てられる。そして,第1図を参照して説明した如く,最
初に基本ブロックからIP方向へたどって元の基本ブロ
ックに戻るまでに通過する基本ブロックに
対応して夫々の基本ブロック辞書5F,5E,5D,5C,5B上に情
報IDAが夫々書き込まれる。次いで基本ブロックからI
P方向へたどって,基本ブロック辞書5E,5D,5C上に情報I
DBが夫々オーバライトされる。次いで,辞書5D上に情報
IDCがオーバライトされる。
このようにして第2図図示右側に示す各基本ブロック
辞書5Aないし5Gの内容が定まり,例えば情報IDAが基本
ブロック辞書5Bと基本ブロック辞書5Fとに存在すること
から,基本ブロックと基本ブロックとまでがループ
Iに属するループ構成ブロックとするようにする。
〔発明の効果〕
以上説明した如く,本発明によれば,予めループの入
口を見出しておいて,当該ループの入口からIP方向にた
どったとき抽出されるすべての基本ブロックに対して,
バック・ターゲットに関する情報を書き込み,サクセッ
サ方向検索テーブル上の順に,ループの各入口につい
て,上記バック・ターゲットに関する情報をオーバ・ラ
イトしてゆくようにしている。このために、処理速度が
大幅に向上される。
【図面の簡単な説明】
第1図は本発明の原理構成図,第2図は本発明の一実施
例構成,第3図はループ検出の従来の態様を説明する説
明図を示す。 図中,,…,,…は夫々基本ブロック,1はサク
セッサ方向検索テーブル,2は入口指示フラグ情報,3は基
本ブロック辞書参照情報,4は基本ブロック列,5A,5B,…
は夫々基本ブロック辞書,Sはサクセッサ方向検索レベル
情報,Tはバック・ターゲット基本ブロック辞書参照情報
を表す。
フロントページの続き (56)参考文献 Edward S,Lowry and C.W.Medlock;「Objec t Code Optimizatio n」Communications of the ACM.Vol.12,No. 1,1969、P.13〜P.22

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】中間言語の命令列に対して基本ブロック列
    (4)が対応づけられ,当該各基本ブロック,…に
    対応して基本ブロック辞書(5A)(5B)…が生成されて
    なり,該基本ブロック辞書(5A)(5B)…の群を参照し
    て上記基本ブロック列(4)におけるループ(I)(I
    I)…を検出し,当該ループ(I)(II)…を構成して
    いる各基本ブロックを決定するループ構成ブロックの決
    定処理方式において, 上記各基本ブロック辞書(5A)(5B)…は,少なくとも
    サクセッサ方向検索レベル情報(S)とバック・ターゲ
    ットに対応づけられるバック・ターゲット基本ブロック
    辞書参照情報(T)とをそなえると共に,ループ検出処
    理に対応してもうけられるサクセッサ方向検索テーブル
    (1)をもうけ, 当該サクセッサ方向検索テーブル(1)は,プログラム
    の入口側から到達可能な各基本ブロックを当該入口側か
    らの到達距離順に並べ,かつ個々の基本ブロックに対応
    して当該基本ブロックがループの入口を構成するか否か
    のフラグ情報(2)と自己対応の基本ブロック辞書に対
    する参照情報(3)とをそなえ, 上記サクセッサ方向検索テーブル(1)と上記各基本ブ
    ロック辞書(5A)(5B)…とにもとづいて,上記入口側
    からの到達距離順に存在する上記ループの入口を構成す
    る基本ブロックから順に,ループの入口を構成する夫々
    の基本ブロック毎に,当該ループの入口を構成する基本
    ブロックからプリディセッサ方向に基本ブロックをたど
    り,自己のループの入口を構成する基本ブロックに到達
    したとき該当するループを見出し,当該ループに属する
    各基本ブロックの上記基本ブロック辞書(5A)(5B)…
    中に,自己のループに対応するバック・ターゲット基本
    ブロックを特定する情報を,上記ループの入口を構成す
    る夫々の基本ブロックについての処理の順に,オーバラ
    イトする処理を実行し、上記バック・ターゲット基本ブ
    ロックを特定する同じ情報がライトされている基本ブロ
    ック辞書(5A)(5B)…の内容からループ構成ブロック
    を決定するようにしたことを特徴とするループ構成ブロ
    ックの決定処理方式。
JP9929385A 1985-05-10 1985-05-10 ループ構成ブロックの決定処理方式 Expired - Lifetime JPH0812606B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9929385A JPH0812606B2 (ja) 1985-05-10 1985-05-10 ループ構成ブロックの決定処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9929385A JPH0812606B2 (ja) 1985-05-10 1985-05-10 ループ構成ブロックの決定処理方式

Publications (2)

Publication Number Publication Date
JPS61259341A JPS61259341A (ja) 1986-11-17
JPH0812606B2 true JPH0812606B2 (ja) 1996-02-07

Family

ID=14243591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9929385A Expired - Lifetime JPH0812606B2 (ja) 1985-05-10 1985-05-10 ループ構成ブロックの決定処理方式

Country Status (1)

Country Link
JP (1) JPH0812606B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102758056A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅铝膨润土炼钢脱氧剂及其制备方法
CN102758058A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种炼钢用硅锰粉煤灰脱氧剂及其制备方法
CN102758063A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰钡合金脱氧剂及其制备方法
CN102758062A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰复合脱氧剂及其制备方法
CN102758059A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种炼钢用硅钡钾系脱氧剂及其制备方法
CN102758057A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰钙质页岩脱氧剂及其制备方法
CN102758061A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰海泡石炼钢脱氧剂及其制备方法
KR20150020219A (ko) * 2012-05-23 2015-02-25 다이킨 고교 가부시키가이샤 냉동 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
EdwardS,LowryandC.W.Medlock;「ObjectCodeOptimization」CommunicationsoftheACM.Vol.12,No.1,1969、P.13〜P.22

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150020219A (ko) * 2012-05-23 2015-02-25 다이킨 고교 가부시키가이샤 냉동 장치
CN102758056A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅铝膨润土炼钢脱氧剂及其制备方法
CN102758058A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种炼钢用硅锰粉煤灰脱氧剂及其制备方法
CN102758063A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰钡合金脱氧剂及其制备方法
CN102758062A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰复合脱氧剂及其制备方法
CN102758059A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种炼钢用硅钡钾系脱氧剂及其制备方法
CN102758057A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰钙质页岩脱氧剂及其制备方法
CN102758061A (zh) * 2012-06-21 2012-10-31 芜湖县天海耐火炉料有限公司 一种硅锰海泡石炼钢脱氧剂及其制备方法

Also Published As

Publication number Publication date
JPS61259341A (ja) 1986-11-17

Similar Documents

Publication Publication Date Title
US20040181684A1 (en) Method for detecting malicious code patterns in consideration of control and data flows
JPH0812606B2 (ja) ループ構成ブロックの決定処理方式
Liu et al. Combining static analysis and dynamic learning to build accurate intrusion detection models
CN113743080A (zh) 一种分层级地址文本相似度比对方法、装置及介质
CN111179071A (zh) 一种基于拓扑排序的区块链交易依赖分析方法
JPH0696263A (ja) パターン認識装置
CN113988077A (zh) 一种行政职位、职级姓名纠错方法和系统
JP6235945B2 (ja) ソースコード生成および提供装置、並びにソースコード生成および提供方法
CN108827369B (zh) 提升传感器关联效率的方法
CN114911698B (zh) 一种自动测试方法、装置、电子设备及存储介质
Ma et al. A clustering method for pruning false positive of clonde code detection
JP2871693B2 (ja) クリティカルセクション最適化方式
JP2833871B2 (ja) 外国人名データ判定方式
JP2683116B2 (ja) 罫線の除去方法
JPH0546734A (ja) パターン認識方法
CN117537812A (zh) 基于量化窗口的立体视觉惯性里程计定位方法及系统
CN114387140A (zh) 一种以事件、情景为中心的跨部门应急预案整合方法
CN117369411A (zh) 故障原因定位方法、装置、设备及计算机可读存储介质
JPH01237737A (ja) フラグ識別支援方式
JP2725454B2 (ja) 文字コード知識処理方式
JPS63142429A (ja) アプリケ−シヨン・プログラム開発処理システム
JP2002073373A (ja) 修正確認検査項目を元に周辺・類似機能を確認する検査プログラムを抽出するプログラム検査装置
JPH04242840A (ja) 実行ステップ分布計算方式
Goncz et al. AUTOMATIC ASSOCIATION (AA)
JPS6368939A (ja) プログラム遷移解析処理方式