coins.flow
クラス SetRefReprHirImpl

java.lang.Object
  |
  +--coins.flow.SetRefReprImpl
        |
        +--coins.flow.SetRefReprHirImpl
すべての実装インタフェース:
SetRefRepr
直系の既知のサブクラス:
SetRefReprHirEImpl

public class SetRefReprHirImpl
extends SetRefReprImpl
implements SetRefRepr

Implementation of the SetRefRepr interface for HIR


フィールドの概要
protected  Stmt fStmt
           
 HirRoot hirRoot
           
 
クラス 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
 
インタフェース coins.flow.SetRefRepr から継承したフィールド
HAS_CONTROL, IS_RETURN, SETS
 
コンストラクタの概要
SetRefReprHirImpl(HIR pSubtree, BBlock pBBlock)
           
SetRefReprHirImpl(IR pHir, SubpFlow pSubpFlow, ExpId pExpId)
           
 
メソッドの概要
 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()
           
 
クラス coins.flow.SetRefReprImpl から継承したメソッド
allFalse, defExpId, expIterator, expListIterator, expListIterator, expListIteratorFromBottom, getBBlock, getCorrespondingExpId, getDefFlowAnalSym, getDefSym, getFlag, getIR, getUseFlowAnalSyms, hasControl, isReturn, setFlag, sets, topUseNode, toString, useSymList, useSyms
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.flow.SetRefRepr から継承したメソッド
allFalse, expIterator, expListIterator, expListIterator, getBBlock, getDefSym, getFlag, getIR, getUseFlowAnalSyms, hasControl, isReturn, setFlag, sets, topUseNode, toString, useSymList, useSyms
 

フィールドの詳細

fStmt

protected Stmt fStmt

hirRoot

public final HirRoot hirRoot
コンストラクタの詳細

SetRefReprHirImpl

public SetRefReprHirImpl(HIR pSubtree,
                         BBlock pBBlock)

SetRefReprHirImpl

public SetRefReprHirImpl(IR pHir,
                         SubpFlow pSubpFlow,
                         ExpId pExpId)
メソッドの詳細

setInformation

protected void setInformation(HIR pSubtree)

getStmt

public Stmt getStmt()

useNodeList

public 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(). Sym may be FlowAnalSyms and Subp. Child 1 of SUBS node is excluded. ?? Nodes that correspond to Syms that are possibly used are included.

定義:
インタフェース SetRefRepr 内の useNodeList

exps

public java.util.List exps()
Get the list of expressions (that have ExpId) under the associated subtree. defNode() expression is excluded.

定義:
クラス SetRefReprImpl 内の exps
戻り値:
the list of expressions

defNode

public IR defNode()
インタフェース SetRefRepr の記述:
Returns the IR node which links to the definitely defined (set) symbol. Returns null if sets() returns false.

定義:
インタフェース SetRefRepr 内の defNode
戻り値:
the IR node which links to the defined (set) symbol.

modSyms

public 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.

定義:
インタフェース SetRefRepr 内の modSyms
戻り値:
the set of symbols to be modified.

modSymsUnder

protected void modSymsUnder(HIR pHIR,
                            java.util.Set pModSyms)

flowAnalSymsUnder

protected java.util.Set flowAnalSymsUnder(HIR pHIR)

symsModifiedForLhsExp

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.

パラメータ:
pExp - LHS expression that is used as LHS operand of AssignStmt, call-operand, etc.
戻り値:
the set of symbols that may be modified.

expIdSet

protected java.util.Set expIdSet()

lhsSyms

public java.util.Set lhsSyms()
インタフェース SetRefRepr の記述:
Returns the set of symbols that correspond to the set of nodes that are within the LHS of this SetRefRepr. Returns null if sets() returns false. The return value is a superset of the return value of getModSyms().

定義:
インタフェース SetRefRepr 内の lhsSyms

expsUnder

protected java.util.List expsUnder(HIR pSubtree)

useNodeList

protected java.util.List useNodeList(boolean pFromTop,
                                     boolean pFromLeft)
List up nodes using FlowAnalSym and Subp (exclude child1 of SUBS node)

パラメータ:
pFromTop - not used in this method.
pFromLeft - not used in this method.
戻り値:
thelist of use-nodes.

exps

protected java.util.List exps(boolean pFromTop,
                              boolean pFromLeft)
定義:
クラス SetRefReprImpl 内の exps

hasCallWithSideEffect

public boolean hasCallWithSideEffect()
定義:
インタフェース SetRefRepr 内の hasCallWithSideEffect

callNodes

public java.util.List callNodes()
定義:
インタフェース SetRefRepr 内の callNodes

checkWhetherBranch

protected static boolean checkWhetherBranch(Stmt pStmt)

writesToDefiniteAddress

public boolean writesToDefiniteAddress()
定義:
インタフェース SetRefRepr 内の writesToDefiniteAddress

hasDefiniteValue

protected static boolean hasDefiniteValue(Exp pExp)

defSym

public FlowAnalSym defSym()
インタフェース SetRefRepr の記述:
Returns the symbol that is definitely defined in this SetRefRepr. (Neither consider the possibility of global variable modification by subprogram call nore consider modification by alias relations.) Returns null if sets() returns false, or, for example, in HIR, if this SetRefRepr corresponds to an assignment to an array element.

定義:
インタフェース SetRefRepr 内の defSym

modSyms00

public java.util.Set modSyms00()
インタフェース SetRefRepr の記述:
Returns the set of symbols that are accessed by its name in the subprogram containing this 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

定義:
インタフェース SetRefRepr 内の modSyms00

nodeListIterator

public NodeListIterator nodeListIterator()
インタフェース SetRefRepr の記述:
DFO iterator over the nodes under the subtree returned by getIR.

定義:
インタフェース SetRefRepr 内の nodeListIterator

useNodeIterator

public java.util.Iterator useNodeIterator()
インタフェース SetRefRepr の記述:
DFO iterator over the nodes under the subtree returned by getIR(), but the node returned by getDefNode() excluded.

定義:
インタフェース SetRefRepr 内の useNodeIterator