coins.aflow
クラス SetRefReprHirEImpl

java.lang.Object
  |
  +--coins.aflow.SetRefReprImpl
        |
        +--coins.aflow.SetRefReprHirImpl
              |
              +--coins.aflow.SetRefReprHirEImpl
すべての実装インタフェース:
SetRefRepr, SetRefReprHir

public class SetRefReprHirEImpl
extends SetRefReprHirImpl
implements SetRefReprHir

Implementation of the SetRefRepr interface for HIR


フィールドの概要
protected  java.util.Set fAllSubexps
          fAllSubexps: ExpId's of all subexpressions under the node corresponding to this.
protected  boolean fCallWithSideEffectIncluded
          fCallIncluded: True if call with side effect is included in the subtree fIR, false if call with side effect is not included.
protected  java.util.Set fLeafOperands
          fLeafOperands: Symbols of subexpressions used as operands by the node corresponding to this.
protected  java.util.Set fModSyms
          fModSyms: Symbols that may be modified by the node corresponding to this.
protected  java.util.Set fModSymsStmt
          fModSymsStmt: Symbols that may be modified by the simple statement containing the subtree corresponding to this SetRefRepr.
protected  java.util.Set fOperandExp
          fOperandExp: ExpId's of subexpressions used as direct operands by the node corresponding to this.
 
クラス coins.aflow.SetRefReprHirImpl から継承したフィールド
flow, fStmt, hirRoot
 
クラス coins.aflow.SetRefReprImpl から継承したフィールド
fBBlock, fDefSym, fFlags, fIR, flowRoot, fOpCode, fResults, fUseExpIdList, fUseNodeList, symRoot
 
インタフェース coins.aflow.SetRefRepr から継承したフィールド
HAS_CONTROL, IS_RETURN, SETS
 
コンストラクタの概要
SetRefReprHirEImpl(HIR pSubtree, BBlock pBBlock, boolean pDef, java.util.Set pModSymsStmt)
          SetRefReprHirEImpl instanciates SetRefRepr for the subtree pSubtree by computing SetRefRepr for child subtrees.
 
メソッドの概要
 java.util.Set allSubexps()
          operandExp: ExpId's of all subexpressions of the subtree corresponding to this.
protected  void computeSetRefRepr(HIR pHir, BBlock pBBlock, boolean pDef, java.util.Set pModSymsStmt)
          computeSetRefRepr: Compute defined symbols (fDefSym) and set of possibly modified variables (fModSyms), variables used as leaf operand (fLeafOperands).
 IR defNode()
          Returns the IR node which links to the definitely defined (set) symbol.
 Stmt getStmt()
          Returns the Stmt node that originated this SetRefReprHir.
 boolean hasCallWithSideEffect()
           
 java.util.Set leafOperands()
          leafOperands: Get the set of symbols used as operands gathered from all leaf nodes of the subtree corresponding to this.
 java.util.Set modSyms()
          modSyms returns the set of symbols that are possibly defined in this SetRefRepr.
 java.util.Set modSyms0()
          modSyms0 returns the set of symbols that are possibly defined in this SetRefRepr as modSyms() and symbols externally defined (i.e. via external calls) if call is included.
 java.util.Set modSymsStmt()
          modSymsStmt returns the set of symbols that are possibly defined in the this SetRefRepr.
 java.util.Set operandExp()
          operandExp: ExpId's of subexpressions used as direct operands by the node corresponding to this.
 
クラス coins.aflow.SetRefReprHirImpl から継承したメソッド
callNodes, checkWhetherBranch, defSym, exps, exps, expsUnder, flowAnalSymNodesUnder, flowAnalSymsUnder, hasDefiniteValue, lhsSyms, modSyms00, modSymsUnder, symsModifiedForLhsExp, useNodeList, useNodeList, 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, callNodes, defFlowExpId, defSym, expIterator, expListIterator, expListIterator, getBBlock, getDAvailIn, getDDefIn, getDDefined, getDefSym, getDExposed, getDKill, getDReach, getDUsed, getFlag, getIR, getPDefined, getPEKill, getPExposed, getPKill, getPLiveOut, getPReach, getPUsed, hasControl, isReturn, lhsSyms, modSyms00, nodeIterator, nodeListIterator, nodeListIterator, setFlag, sets, topUseNode, toString, useNodeIterator, useNodeList, useSyms, writesToDefiniteAddress
 

フィールドの詳細

fModSyms

protected java.util.Set fModSyms
fModSyms: Symbols that may be modified by the node corresponding to this. ExpId's for intermediate results are excluded but ExpId for compound variable in LHS of AssignStmt is included.


fModSymsStmt

protected java.util.Set fModSymsStmt
fModSymsStmt: Symbols that may be modified by the simple statement containing the subtree corresponding to this SetRefRepr. It is allocated for each simple statement and refered from all subexpressions in the simple statement.


fLeafOperands

protected java.util.Set fLeafOperands
fLeafOperands: Symbols of subexpressions used as operands by the node corresponding to this. ExpId's for intermediate results are excluded.


fOperandExp

protected java.util.Set fOperandExp
fOperandExp: ExpId's of subexpressions used as direct operands by the node corresponding to this. Leaf operands are excluded.


fAllSubexps

protected java.util.Set fAllSubexps
fAllSubexps: ExpId's of all subexpressions under the node corresponding to this. Leaf operands are excluded.


fCallWithSideEffectIncluded

protected boolean fCallWithSideEffectIncluded
fCallIncluded: True if call with side effect is included in the subtree fIR, false if call with side effect is not included.

コンストラクタの詳細

SetRefReprHirEImpl

public SetRefReprHirEImpl(HIR pSubtree,
                          BBlock pBBlock,
                          boolean pDef,
                          java.util.Set pModSymsStmt)
SetRefReprHirEImpl instanciates SetRefRepr for the subtree pSubtree by computing SetRefRepr for child subtrees. For leaf children, SetRefRepr is not created. Required information fSetRefReprTable, fIrIndexMin, fIrIndexMax, and each item of fSetRefReprTable are set by HirSubpFlowImpl (and LirSubpFlowImpl).

メソッドの詳細

computeSetRefRepr

protected void computeSetRefRepr(HIR pHir,
                                 BBlock pBBlock,
                                 boolean pDef,
                                 java.util.Set pModSymsStmt)
computeSetRefRepr: Compute defined symbols (fDefSym) and set of possibly modified variables (fModSyms), variables used as leaf operand (fLeafOperands). for the HIR subtree pHir within the basic block pBBlock. Fields fDefSym, fModSyms, fLeafOperands are computed and and SETS flag of fFlags are set true if some symbol is defined. The branchs outside pBBlock are not processed. Traverse should be in the sequence of evaluation at execution time.


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
オーバーライド:
クラス SetRefReprHirImpl 内の getStmt

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
オーバーライド:
クラス SetRefReprHirImpl 内の defNode
戻り値:
the IR node which links to the defined (set) symbol.

modSyms

public java.util.Set modSyms()
modSyms returns the set of symbols that are possibly defined in this SetRefRepr. Symbols externally defined (i.e. via external calls) are not included. LHS symbol or ExpId if AssignStmt; ExpId if Exp; array symbol if SubscriptedExp; all variables if pointed var assignment;

定義:
インタフェース SetRefRepr 内の modSyms
オーバーライド:
クラス SetRefReprHirImpl 内の modSyms
戻り値:
the set of symbols that are possibly defined.

modSymsStmt

public java.util.Set modSymsStmt()
modSymsStmt returns the set of symbols that are possibly defined in the this SetRefRepr. Symbols externally defined (i.e. via external calls) are not included. LHS symbol or ExpId if AssignStmt; ExpId if Exp; array symbol if SubscriptedExp; all variables if pointed var assignment;

戻り値:
the set of symbols that are possibly defined.

modSyms0

public java.util.Set modSyms0()
modSyms0 returns the set of symbols that are possibly defined in this SetRefRepr as modSyms() and symbols externally defined (i.e. via external calls) if call is included.

戻り値:
the set of symbols that are possibly defined including external symbols if call is included.

leafOperands

public java.util.Set leafOperands()
leafOperands: Get the set of symbols used as operands gathered from all leaf nodes of the subtree corresponding to this. ExpId's for intermediate results are excluded.


operandExp

public java.util.Set operandExp()
operandExp: ExpId's of subexpressions used as direct operands by the node corresponding to this. Leaf operands are excluded.


allSubexps

public java.util.Set allSubexps()
operandExp: ExpId's of all subexpressions of the subtree corresponding to this. Leaf operands are excluded.


hasCallWithSideEffect

public boolean hasCallWithSideEffect()
定義:
インタフェース SetRefRepr 内の hasCallWithSideEffect
オーバーライド:
クラス SetRefReprHirImpl 内の hasCallWithSideEffect