|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.flow.SetRefReprImpl
coins.flow.SetRefReprHirImpl
Implementation of the SetRefRepr interface for HIR
| Field Summary | |
protected Stmt |
fStmt
|
HirRoot |
hirRoot
|
| Fields inherited from class coins.flow.SetRefReprImpl |
fAllSubexps, fBBlock, fCallNodes, fCallWithSideEffectIncluded, fCorrespondingExpId, fDbgLevel, fDefExpId, fDefSym, fExpIdSet, fExps, fFlags, fIR, fLeafOperands, fLhsSyms, flow, flowRoot, fModSyms, fModSyms00, fModSymsStmt, fOpCode, fOperandExp, fSubpFlow, fUseFlowAnalSyms, fUseNodeList, fUseSymList, fUseSyms, symRoot |
| Fields inherited from interface coins.flow.SetRefRepr |
HAS_CONTROL, IS_RETURN, SETS |
| Constructor Summary | |
SetRefReprHirImpl(HIR pSubtree,
BBlock pBBlock)
|
|
SetRefReprHirImpl(IR pHir,
SubpFlow pSubpFlow,
ExpId pExpId)
|
|
| 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. |
protected java.util.Set |
expIdSet()
|
java.util.List |
exps()
Get the list of expressions (that have ExpId) under the associated subtree. |
protected java.util.List |
exps(boolean pFromTop,
boolean pFromLeft)
|
protected java.util.List |
expsUnder(HIR pSubtree)
|
protected java.util.Set |
flowAnalSymsUnder(HIR pHIR)
|
Stmt |
getStmt()
|
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)
|
NodeListIterator |
nodeListIterator()
DFO iterator over the nodes under the subtree returned by getIR. |
protected void |
setInformation(HIR pSubtree)
|
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.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(). |
protected java.util.List |
useNodeList(boolean pFromTop,
boolean pFromLeft)
List up nodes using FlowAnalSym and Subp (exclude child1 of SUBS node) |
boolean |
writesToDefiniteAddress()
|
| Methods inherited from class coins.flow.SetRefReprImpl |
allFalse, defExpId, expIterator, expListIterator, expListIterator, expListIteratorFromBottom, getBBlock, getCorrespondingExpId, getDefFlowAnalSym, getDefSym, getFlag, getIR, getUseFlowAnalSyms, hasControl, isReturn, setFlag, sets, topUseNode, toString, useSymList, useSyms |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface coins.flow.SetRefRepr |
allFalse, expIterator, expListIterator, expListIterator, getBBlock, getDefSym, getFlag, getIR, getUseFlowAnalSyms, hasControl, isReturn, setFlag, sets, topUseNode, toString, useSymList, useSyms |
| Field Detail |
protected Stmt fStmt
public final HirRoot hirRoot
| Constructor Detail |
public SetRefReprHirImpl(HIR pSubtree,
BBlock pBBlock)
public SetRefReprHirImpl(IR pHir,
SubpFlow pSubpFlow,
ExpId pExpId)
| Method Detail |
protected void setInformation(HIR pSubtree)
public Stmt getStmt()
public java.util.List useNodeList()
useNodeList in interface SetRefReprpublic java.util.List exps()
exps in class SetRefReprImplpublic IR defNode()
SetRefRepr
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)
protected java.util.Set symsModifiedForLhsExp(Exp pExp)
pExp - LHS expression that is used as LHS operand
of AssignStmt, call-operand, etc.
protected java.util.Set expIdSet()
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.List useNodeList(boolean pFromTop,
boolean pFromLeft)
pFromTop - not used in this method.pFromLeft - not used in this method.
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()
SetRefRepr
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
and findDefUseExhaustively(), findUseDefExhaustively(). //##73
modSyms00 in interface SetRefReprpublic NodeListIterator nodeListIterator()
SetRefReprgetIR.
nodeListIterator in interface SetRefReprpublic java.util.Iterator useNodeIterator()
SetRefReprgetIR(), but the node returned by getDefNode() excluded.
useNodeIterator in interface SetRefRepr
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||