|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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()
|
FlowExpId |
defFlowExpId()
Returns the FlowExpId that correponds to the node returned by getDefNode() . |
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()
|
ExpVector |
getDAvailIn()
|
FlowAnalSymVector |
getDDefIn()
|
FlowAnalSymVector |
getDDefined()
|
FlowAnalSym |
getDefSym()
|
FlowAnalSymVector |
getDExposed()
|
DefVector |
getDKill()
|
DefVector |
getDReach()
|
FlowAnalSymVector |
getDUsed()
|
boolean |
getFlag(int pFlag)
|
IR |
getIR()
Returns the (top) node this SetRefRepr represents. |
FlowAnalSymVector |
getPDefined()
|
ExpVector |
getPEKill()
|
FlowAnalSymVector |
getPExposed()
|
DefVector |
getPKill()
|
FlowAnalSymVector |
getPLiveOut()
|
DefVector |
getPReach()
|
FlowAnalSymVector |
getPUsed()
|
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 .
|
NodeIterator |
nodeIterator()
DFO iterator over the nodes under the subtree returned by getIR . |
NodeListIterator |
nodeListIterator()
|
NodeListIterator |
nodeListIterator(boolean pFromTop,
boolean pFromLeft)
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 Sym that are used (read), in the depth first order
that appears under the subtree returned by getIR() . |
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()
Sym
that are used (read), in the depth first order
that appears under the subtree returned by getIR()
. Nodes that correspond to Sym
s that are possibly used
are included.
public java.util.Set useSyms()
public IR defNode()
sets()
returns
false
.
public FlowAnalSym defSym()
SetRefRepr
. Returns null if sets()
returns false
, or, for example, in HIR, if this SetRefRepr
corresponds to an assignment to an array element.
public java.util.Set modSyms()
SetRefRepr
.
Symbols externally modified (i.e. via external calls) are not included.
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 FlowExpId defFlowExpId()
FlowExpId
that correponds to the node returned by getDefNode()
.
public java.lang.String toString()
java.lang.Object
内の toString
public NodeIterator nodeIterator()
getIR
.
public NodeListIterator nodeListIterator()
public NodeListIterator nodeListIterator(boolean pFromTop, boolean pFromLeft)
getIR()
.
pFromTop
- If true
, iterates from the top of the subtree.pFromLeft
- if true
, iterates from the left of the subtree.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 DefVector getDKill()
public DefVector getPKill()
public DefVector getPReach()
public DefVector getDReach()
public FlowAnalSymVector getDDefined()
public FlowAnalSymVector getPDefined()
public FlowAnalSymVector getDExposed()
public FlowAnalSymVector getPExposed()
public FlowAnalSymVector getDUsed()
public FlowAnalSymVector getPUsed()
public FlowAnalSymVector getPLiveOut()
public ExpVector getPEKill()
public ExpVector getDAvailIn()
public FlowAnalSymVector getDDefIn()
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
public BBlock getBBlock()
public FlowAnalSym getDefSym()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |