|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.aflow.SetRefReprImpl
coins.aflow.SetRefReprHirImpl
Implementation of the SetRefRepr interface for HIR
| Field Summary | |
Flow |
flow
|
protected Stmt |
fStmt
|
HirRoot |
hirRoot
|
| Fields inherited from class coins.aflow.SetRefReprImpl |
fBBlock, fDefSym, fFlags, fIR, flowRoot, fOpCode, fResults, fUseExpIdList, fUseNodeList, symRoot |
| Fields inherited from interface coins.aflow.SetRefRepr |
HAS_CONTROL, IS_RETURN, SETS |
| Constructor Summary | |
protected |
SetRefReprHirImpl(HIR pSubtree,
BBlock pBBlock)
|
| Method Summary | |
java.util.List |
callNodes()
|
protected static boolean |
checkWhetherBranch(Stmt pStmt)
|
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.List |
exps()
|
protected java.util.List |
exps(boolean pFromTop,
boolean pFromLeft)
|
protected java.util.List |
expsUnder(HIR pSubtree)
|
protected java.util.Set |
flowAnalSymNodesUnder(HIR pSubtree)
|
protected java.util.Set |
flowAnalSymsUnder(HIR pHIR)
|
Stmt |
getStmt()
Returns the Stmt node that originated this SetRefReprHir. |
boolean |
hasCallWithSideEffect()
|
protected static boolean |
hasDefiniteValue(Exp pExp)
|
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()
modSyms: //##25-1 Get the set of FlowAnalSym symbols whose value is set during the evaluation of the subtree corresponding to 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. |
protected void |
modSymsUnder(HIR pHIR,
java.util.Set pModSyms)
|
protected java.util.Set |
symsModifiedForLhsExp(Exp pExp)
Get the set of symbols that may be modified when pExp is used as LHS (left hand side) expression. |
java.util.List |
useNodeList()
Returns the Sym that are used (read), in the depth first order
that appears under the subtree returned by getIR(). |
protected java.util.List |
useNodeList(boolean pFromTop,
boolean pFromLeft)
|
boolean |
writesToDefiniteAddress()
|
| Methods inherited from class coins.aflow.SetRefReprImpl |
allFalse, defFlowExpId, expIterator, expListIterator, expListIterator, expListIteratorFromBottom, getBBlock, getDAvailIn, getDDefIn, getDDefined, getDefSym, getDExposed, getDKill, getDReach, getDUsed, getFlag, getFlowExpIds, getIR, getPDefined, getPEKill, getPExposed, getPKill, getPLiveOut, getPReach, getPUsed, getUseFlowExpIds, hasControl, isReturn, nodeIterator, nodeListIterator, nodeListIterator, setFlag, sets, topUseNode, toString, useNodeIterator, useSyms |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface coins.aflow.SetRefRepr |
allFalse, defFlowExpId, expIterator, expListIterator, expListIterator, getBBlock, getDAvailIn, getDDefIn, getDDefined, getDefSym, getDExposed, getDKill, getDReach, getDUsed, getFlag, getIR, getPDefined, getPEKill, getPExposed, getPKill, getPLiveOut, getPReach, getPUsed, hasControl, isReturn, nodeIterator, nodeListIterator, nodeListIterator, setFlag, sets, topUseNode, toString, useNodeIterator, useSyms |
| Field Detail |
protected Stmt fStmt
public final HirRoot hirRoot
public final Flow flow
| Constructor Detail |
protected SetRefReprHirImpl(HIR pSubtree,
BBlock pBBlock)
| Method Detail |
public Stmt getStmt()
SetRefReprHirStmt node that originated this SetRefReprHir. This is usually same as getIR(), but is differnet when this SetRefReprHir originates from an IfStmt.
getStmt in interface SetRefReprHirpublic java.util.List useNodeList()
SetRefReprSym that are used (read), in the depth first order
that appears under the subtree returned by getIR(). Nodes that correspond to Syms that are possibly used
are included.
useNodeList in interface SetRefReprpublic java.util.List exps()
exps in class SetRefReprImplpublic IR defNode()
SetRefReprsets() returns
false.
defNode in interface SetRefReprpublic java.util.Set modSyms()
modSyms in interface SetRefRepr
protected void modSymsUnder(HIR pHIR,
java.util.Set pModSyms)
protected java.util.Set flowAnalSymsUnder(HIR pHIR)
public java.util.Set lhsSyms()
SetRefReprSetRefRepr. Returns null if sets() returns false. The return value is a superset of the return value of getModSyms().
lhsSyms in interface SetRefReprprotected java.util.List expsUnder(HIR pSubtree)
protected java.util.Set flowAnalSymNodesUnder(HIR pSubtree)
protected java.util.List useNodeList(boolean pFromTop,
boolean pFromLeft)
protected java.util.List exps(boolean pFromTop,
boolean pFromLeft)
exps in class SetRefReprImplpublic boolean hasCallWithSideEffect()
hasCallWithSideEffect in interface SetRefReprpublic java.util.List callNodes()
callNodes in interface SetRefReprprotected static boolean checkWhetherBranch(Stmt pStmt)
public boolean writesToDefiniteAddress()
writesToDefiniteAddress in interface SetRefReprprotected static boolean hasDefiniteValue(Exp pExp)
public FlowAnalSym defSym()
SetRefReprSetRefRepr. Returns null if sets() returns false, or, for example, in HIR, if this SetRefRepr corresponds to an assignment to an array element.
defSym in interface SetRefReprpublic java.util.Set modSyms00()
SetRefReprSetRefRepr 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
modSyms00 in interface SetRefReprprotected java.util.Set symsModifiedForLhsExp(Exp pExp)
pExp - LHS expression that is used as LHS operand
of AssignStmt, call-operand, etc.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||