coins.aflow
クラス SetRefReprHirImpl

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

public class SetRefReprHirImpl
extends SetRefReprImpl
implements SetRefReprHir

Implementation of the SetRefRepr interface for HIR


フィールドの概要
 Flow flow
           
protected  Stmt fStmt
           
 HirRoot hirRoot
           
 
クラス coins.aflow.SetRefReprImpl から継承したフィールド
fBBlock, fDefSym, fFlags, fIR, flowRoot, fOpCode, fResults, fUseExpIdList, fUseNodeList, symRoot
 
インタフェース coins.aflow.SetRefRepr から継承したフィールド
HAS_CONTROL, IS_RETURN, SETS
 
コンストラクタの概要
protected SetRefReprHirImpl(HIR pSubtree, BBlock pBBlock)
           
 
メソッドの概要
 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 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)
           
 boolean writesToDefiniteAddress()
           
 
クラス 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
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース 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
 

フィールドの詳細

fStmt

protected Stmt fStmt

hirRoot

public final HirRoot hirRoot

flow

public final Flow flow
コンストラクタの詳細

SetRefReprHirImpl

protected SetRefReprHirImpl(HIR pSubtree,
                            BBlock pBBlock)
メソッドの詳細

getStmt

public Stmt getStmt()
インタフェース SetRefReprHir の記述:
Returns the Stmt node that originated this SetRefReprHir. This is usually same as getIR(), but is differnet when this SetRefReprHir originates from an IfStmt.

定義:
インタフェース SetRefReprHir 内の getStmt

useNodeList

public java.util.List useNodeList()
インタフェース SetRefRepr の記述:
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(). Nodes that correspond to Syms that are possibly used are included.

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

exps

public java.util.List exps()
定義:
クラス SetRefReprImpl 内の exps

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)

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)

flowAnalSymNodesUnder

protected java.util.Set flowAnalSymNodesUnder(HIR pSubtree)

useNodeList

protected java.util.List useNodeList(boolean pFromTop,
                                     boolean pFromLeft)

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

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

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.