coins.ssa
クラス PREQP

java.lang.Object
  |
  +--coins.ssa.PREQP
すべての実装インタフェース:
LocalTransformer, Transformer

public class PREQP
extends java.lang.Object
implements LocalTransformer


フィールドの概要
(パッケージプライベート)  MemoryAliasAnalyze alias
           
(パッケージプライベート)  java.util.Hashtable cpMap
           
(パッケージプライベート)  boolean[] initialized
           
(パッケージプライベート)  int maxId
           
(パッケージプライベート)  boolean[] memArray
           
(パッケージプライベート)  java.util.Hashtable modMap
           
(パッケージプライベート)  java.util.Hashtable occurMap
           
(パッケージプライベート)  java.util.Hashtable phiMap
           
(パッケージプライベート)  java.util.Hashtable rPhiMap
           
static int THR
           
static int THR2
          The threshold of debug print
(パッケージプライベート)  coins.ssa.PREQP.VElem unavailVar
           
 
コンストラクタの概要
PREQP(SsaEnvironment e, SsaSymTab tab, int m)
          Constructor
 
メソッドの概要
 boolean doIt(Data data, ImList args)
          Transform the DATA component.
 boolean doIt(Function function, ImList args)
          Do optimize using Efficient Question Propagation.
(パッケージプライベート)  boolean eqp(LirNode e, BasicBlk v, BasicBlk succ, LirNode[] visited)
           
(パッケージプライベート)  LirNode insertPhi(coins.ssa.PREQP.VElem v)
           
(パッケージプライベート)  void invoke()
          Do optimization using Efficient Question Propagation.
(パッケージプライベート)  void localInit(BasicBlk v)
           
(パッケージプライベート)  void maintainTableDeleteExp(LirNode node, BasicBlk b)
           
(パッケージプライベート)  void maintainTableDeletePhi(LirNode node, LirNode orgNode, BasicBlk b)
           
(パッケージプライベート)  void maintainTableInsertExp(BiLink q, LirNode node, BasicBlk b)
           
(パッケージプライベート)  void maintainTableInsertPhi(BiLink q, LirNode node, BasicBlk b)
           
(パッケージプライベート)  void maintainTableReplaceExp(LirNode old, LirNode newN, BasicBlk b)
           
(パッケージプライベート)  void maintainTableReplacePhi(LirNode old, LirNode newN, BasicBlk b)
           
(パッケージプライベート)  java.lang.String makeExpKey(LirNode n)
           
(パッケージプライベート)  java.lang.String makeLocalKey(BasicBlk blk, LirNode n)
           
(パッケージプライベート)  java.lang.String makeLocalKey2(BasicBlk blk, BasicBlk succ, LirNode n)
           
(パッケージプライベート)  java.lang.String makeTmpPhiKey(BasicBlk blk, LirNode n)
          Make keys for expressions.
(パッケージプライベート)  boolean memIsHoistable(BasicBlk target, LirNode e)
           
(パッケージプライベート)  boolean modGraph(coins.ssa.PREQP.VElem v)
          The main routine of Efficient Question Propagation.
 java.lang.String name()
          Return the name of the transforming engine.
(パッケージプライベート)  java.lang.Boolean postEqp(LirNode e, BasicBlk v, LirNode[] pVisited)
           
(パッケージプライベート)  boolean propagate(LirNode e, BasicBlk v, LirNode[] visited)
           
 java.lang.String subject()
          Return brief description of the tranformation.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

maxId

int maxId

THR

public static final int THR
関連項目:
定数フィールド値

THR2

public static final int THR2
The threshold of debug print

関連項目:
定数フィールド値

unavailVar

coins.ssa.PREQP.VElem unavailVar

occurMap

java.util.Hashtable occurMap

modMap

java.util.Hashtable modMap

phiMap

java.util.Hashtable phiMap

rPhiMap

java.util.Hashtable rPhiMap

cpMap

java.util.Hashtable cpMap

initialized

boolean[] initialized

alias

MemoryAliasAnalyze alias

memArray

boolean[] memArray
コンストラクタの詳細

PREQP

public PREQP(SsaEnvironment e,
             SsaSymTab tab,
             int m)
Constructor

パラメータ:
e - The environment of the SSA module
tab - The symbol tabel of the SSA module
m - The current mode
メソッドの詳細

doIt

public boolean doIt(Data data,
                    ImList args)
インタフェース LocalTransformer の記述:
Transform the DATA component.

定義:
インタフェース LocalTransformer 内の doIt
パラメータ:
data - DATA to be transformed.
args - list of optional arguments.
戻り値:
true if transformation suceeded.

name

public java.lang.String name()
インタフェース Transformer の記述:
Return the name of the transforming engine. Used for trace tag name.

定義:
インタフェース Transformer 内の name
戻り値:
the name of the transforming engine.

subject

public java.lang.String subject()
インタフェース Transformer の記述:
Return brief description of the tranformation.

定義:
インタフェース Transformer 内の subject
戻り値:
brief description of the tranformation.

modGraph

boolean modGraph(coins.ssa.PREQP.VElem v)
The main routine of Efficient Question Propagation. Return the answer of the question to the expression `e' in the basic block `v'.

パラメータ:
v - The current basic block
戻り値:
The answer of the question

insertPhi

LirNode insertPhi(coins.ssa.PREQP.VElem v)

propagate

boolean propagate(LirNode e,
                  BasicBlk v,
                  LirNode[] visited)

eqp

boolean eqp(LirNode e,
            BasicBlk v,
            BasicBlk succ,
            LirNode[] visited)

makeTmpPhiKey

java.lang.String makeTmpPhiKey(BasicBlk blk,
                               LirNode n)
Make keys for expressions.

パラメータ:
blk - The current basic block
戻り値:
Key for the specified expression

makeLocalKey

java.lang.String makeLocalKey(BasicBlk blk,
                              LirNode n)

makeLocalKey2

java.lang.String makeLocalKey2(BasicBlk blk,
                               BasicBlk succ,
                               LirNode n)

makeExpKey

java.lang.String makeExpKey(LirNode n)

postEqp

java.lang.Boolean postEqp(LirNode e,
                          BasicBlk v,
                          LirNode[] pVisited)

maintainTableInsertExp

void maintainTableInsertExp(BiLink q,
                            LirNode node,
                            BasicBlk b)

maintainTableInsertPhi

void maintainTableInsertPhi(BiLink q,
                            LirNode node,
                            BasicBlk b)

maintainTableDeleteExp

void maintainTableDeleteExp(LirNode node,
                            BasicBlk b)

maintainTableReplaceExp

void maintainTableReplaceExp(LirNode old,
                             LirNode newN,
                             BasicBlk b)

maintainTableDeletePhi

void maintainTableDeletePhi(LirNode node,
                            LirNode orgNode,
                            BasicBlk b)

maintainTableReplacePhi

void maintainTableReplacePhi(LirNode old,
                             LirNode newN,
                             BasicBlk b)

memIsHoistable

boolean memIsHoistable(BasicBlk target,
                       LirNode e)

invoke

void invoke()
Do optimization using Efficient Question Propagation.


localInit

void localInit(BasicBlk v)

doIt

public boolean doIt(Function function,
                    ImList args)
Do optimize using Efficient Question Propagation.

定義:
インタフェース LocalTransformer 内の doIt
パラメータ:
function - L-function to be transformed.
args - list of optional arguments.
戻り値:
true if transformation suceeded.