|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
SetRefRepr interface Used in data flow analysis to represent a Stmt in HIR and an instruction in LIR. This is a wrapper interface that bridges the different data structure and interfaces between HIR and LIR. Used in conjuction with SetRefReprList and its associated SetRefReprIterator, this class serves as a basic building block for basic data flow analysis/optimization.
SetRefReprImpl
フィールドの概要 | |
static int |
HAS_CONTROL
|
static int |
IS_RETURN
|
static int |
SETS
|
メソッドの概要 | |
boolean |
allFalse()
|
java.util.List |
callNodes()
|
IR |
defNode()
Returns the IR node which links to the definitely defined (set) symbol. |
FlowAnalSym |
defSym()
Returns the symbol that is definitely defined in this SetRefRepr. |
java.util.Iterator |
expIterator()
|
java.util.ListIterator |
expListIterator()
Returns a DFO iterator that iterates over nodes that have a FlowExpId attached, and, if "this" is value-setting, is not a Def node. // NEEDED |
java.util.ListIterator |
expListIterator(boolean pFromTop,
boolean pFromLeft)
Returns an DFO iterator that iterates over nodes that have a FlowExpId attached, and, if "this" is value-setting, is not a Def node. // NEEDED |
BBlock |
getBBlock()
|
FlowAnalSym |
getDefSym()
|
boolean |
getFlag(int pFlag)
|
IR |
getIR()
Returns the IR node this SetRefRepr represents. |
java.util.Set |
getUseFlowAnalSyms()
|
boolean |
hasCallWithSideEffect()
|
boolean |
hasControl()
Does this SetRefRepr is at the end of the
BBlock and has a role to determine the flow of control
after this SetRefRepr ? |
boolean |
isReturn()
|
java.util.Set |
lhsSyms()
Returns the set of symbols that correspond to the set of nodes that are within the LHS of this SetRefRepr . |
java.util.Set |
modSyms()
Returns the set of symbols that are possibly modified in this SetRefRepr. |
java.util.Set |
modSyms00()
Returns the set of symbols that are accessed by its name in the subprogram containing this SetRefRepr and possibly
defined in this SetRefRepr .
|
NodeListIterator |
nodeListIterator()
DFO iterator over the nodes under the subtree returned by getIR . |
void |
setFlag(int pFlag,
boolean pYesNo)
|
boolean |
sets()
Returns true if this SetRefRepr involves value-setting, other than via the external call. |
IR |
topUseNode()
If this is a value-setting node, returns the top node of the RHS. |
java.lang.String |
toString()
Converts to a String object. |
java.util.Iterator |
useNodeIterator()
DFO iterator over the nodes under the subtree returned by getIR() , but the node returned by getDefNode() excluded. |
java.util.List |
useNodeList()
Returns the List of nodes that are associated with a Sym that are used (read), in the depth first order that appears under the subtree returned by getIR(). |
java.util.List |
useSymList()
Returns the List of FlowAnalSyms used in this SetRefRepr. |
java.util.Set |
useSyms()
Returns the Set of the FlowAnalSyms used in this SetRefRepr. |
boolean |
writesToDefiniteAddress()
|
フィールドの詳細 |
public static final int SETS
public static final int HAS_CONTROL
public static final int IS_RETURN
メソッドの詳細 |
public IR getIR()
public java.util.List useNodeList()
public java.util.Set useSyms()
public java.util.Set getUseFlowAnalSyms()
public java.util.List useSymList()
public IR defNode()
public FlowAnalSym defSym()
public java.util.Set modSyms()
public java.util.Set lhsSyms()
SetRefRepr
. Returns null if sets()
returns false
. The return value is a superset of the return value of getModSyms()
.
public java.lang.String toString()
java.lang.Object
内の toString
public NodeListIterator nodeListIterator()
getIR
.
public IR topUseNode()
getIR()
.
public java.util.Iterator useNodeIterator()
getIR()
, but the node returned by getDefNode()
excluded.
public java.util.Iterator expIterator()
public java.util.ListIterator expListIterator()
public java.util.ListIterator expListIterator(boolean pFromTop, boolean pFromLeft)
pFromTop
- iterate from top?pFromLeft
- iterate from left?public boolean sets()
true
if this SetRefRepr
involves value-setting, other than via the external call.
public boolean hasCallWithSideEffect()
public java.util.List callNodes()
public boolean hasControl()
SetRefRepr
is at the end of the
BBlock
and has a role to determine the flow of control
after this SetRefRepr
?
public boolean isReturn()
public boolean allFalse()
public boolean getFlag(int pFlag)
public void setFlag(int pFlag, boolean pYesNo)
public boolean writesToDefiniteAddress()
public java.util.Set modSyms00()
SetRefRepr
and possibly
defined in this SetRefRepr
.
Symbols that can be externally defined (i.e. via exteranl calls)
are included as well
(differs from modSym in this point). //##25-1
This is used in FindPEKill, FindDEGen, //##25-1
and findDefUseExhaustively(), findUseDefExhaustively(). //##73
public FlowAnalSym getDefSym()
public BBlock getBBlock()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |