|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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 内の toStringpublic 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()
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||