coins.flow
クラス SetRefReprImpl

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

public abstract class SetRefReprImpl
extends java.lang.Object
implements SetRefRepr

Implementation of the SetRefRepr interface


フィールドの概要
protected  java.util.Set fAllSubexps
          fAllSubexps contains ExpId's of all subexpressions under the node corresponding to this.
protected  BBlock fBBlock
           
protected  java.util.List fCallNodes
           
protected  boolean fCallWithSideEffectIncluded
          fCallIncluded is True if call with side effect is included in the subtree fIR, false otherwize;
protected  ExpId fCorrespondingExpId
           
 int fDbgLevel
           
protected  ExpId fDefExpId
           
protected  FlowAnalSym fDefSym
          Symbol or ExpId defined by this SetRefRepr.
protected  java.util.Set fExpIdSet
           
protected  java.util.List fExps
           
protected  FlagBox fFlags
           
protected  IR fIR
           
protected  java.util.Set fLeafOperands
          fLeafOperands contains symbols of subexpressions used as operands by the subtree corresponding to this.
protected  java.util.Set fLhsSyms
           
 Flow flow
           
 FlowRoot flowRoot
           
protected  java.util.Set fModSyms
          fModSyms contains Symbols that may be modified by the node corresponding to this.
protected  java.util.Set fModSyms00
          fModSYms00 contains symbols in fModSyms and symbols that may be modified by subprogram is hasCall() is true for this SetRefRepr.
protected  java.util.Set fModSymsStmt
          fModSymsStmt contains Symbols that may be modified by the simple statement containing the subtree corresponding to this SetRefRepr.
protected  int fOpCode
           
protected  java.util.Set fOperandExp
          fOperandExp contains ExpId's of subexpressions used as direct operands by the subtree corresponding to this.
 SubpFlow fSubpFlow
           
protected  java.util.Set fUseFlowAnalSyms
           
protected  java.util.List fUseNodeList
           
protected  java.util.List fUseSymList
           
protected  java.util.Set fUseSyms
           
 SymRoot symRoot
           
 
インタフェース coins.flow.SetRefRepr から継承したフィールド
HAS_CONTROL, IS_RETURN, SETS
 
コンストラクタの概要
SetRefReprImpl(IR pIR, SubpFlow pSubpFlow, ExpId pExpId)
           
 
メソッドの概要
 boolean allFalse()
           
 ExpId defExpId()
           
 java.util.Iterator expIterator()
          Returns the Set of nodes that have FlowAnalSym attached and are not a Def node.
 java.util.ListIterator expListIterator()
          Returns a DFO iterator that iterates over nodes that have a FlowExpId attached, and, if "this" is value-setting, is not a Def node. // NEEDED
 java.util.ListIterator expListIterator(boolean pFromTop, boolean pFromLeft)
          Returns an DFO iterator that iterates over nodes that have a FlowExpId attached, and, if "this" is value-setting, is not a Def node. // NEEDED
 java.util.ListIterator expListIteratorFromBottom()
           
abstract  java.util.List exps()
          Get the list of expressions (that have ExpId) under the associated subtree.
(パッケージプライベート) abstract  java.util.List exps(boolean pFromTop, boolean pFromLeft)
           
 BBlock getBBlock()
           
 ExpId getCorrespondingExpId()
           
 FlowAnalSym getDefFlowAnalSym()
           
 FlowAnalSym getDefSym()
           
 boolean getFlag(int pFlagNumber)
           
 IR getIR()
          Returns the IR node this SetRefRepr represents.
 java.util.Set getUseFlowAnalSyms()
           
 boolean hasControl()
          Does this SetRefRepr is at the end of the BBlock and has a role to determine the flow of control after this SetRefRepr?
 boolean isReturn()
           
 void setFlag(int pFlagNumber, boolean pYesNo)
           
 boolean sets()
          Returns true if this SetRefRepr involves value-setting, other than via the external call.
 IR topUseNode()
          If this is a value-setting node, returns the top node of the RHS.
 java.lang.String toString()
          Converts to a String object.
 java.util.List useSymList()
          Returns the List of FlowAnalSyms used in this SetRefRepr.
 java.util.Set useSyms()
          Returns the Set of the FlowAnalSyms used in this SetRefRepr.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.flow.SetRefRepr から継承したメソッド
callNodes, defNode, defSym, hasCallWithSideEffect, lhsSyms, modSyms, modSyms00, nodeListIterator, useNodeIterator, useNodeList, writesToDefiniteAddress
 

フィールドの詳細

flowRoot

public final FlowRoot flowRoot

symRoot

public final SymRoot symRoot

fSubpFlow

public final SubpFlow fSubpFlow

flow

public final Flow flow

fIR

protected IR fIR

fUseNodeList

protected java.util.List fUseNodeList

fOpCode

protected int fOpCode

fFlags

protected FlagBox fFlags

fBBlock

protected BBlock fBBlock

fDefSym

protected FlowAnalSym fDefSym
Symbol or ExpId defined by this SetRefRepr.


fModSyms

protected java.util.Set fModSyms
fModSyms contains 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 contains 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.


fModSyms00

protected java.util.Set fModSyms00
fModSYms00 contains symbols in fModSyms and symbols that may be modified by subprogram is hasCall() is true for this SetRefRepr. (It is computed only when modSyms00() is called at the first time.


fLeafOperands

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


fOperandExp

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


fAllSubexps

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


fCallWithSideEffectIncluded

protected boolean fCallWithSideEffectIncluded
fCallIncluded is True if call with side effect is included in the subtree fIR, false otherwize;


fLhsSyms

protected java.util.Set fLhsSyms

fUseSyms

protected java.util.Set fUseSyms

fUseFlowAnalSyms

protected java.util.Set fUseFlowAnalSyms

fExpIdSet

protected java.util.Set fExpIdSet

fExps

protected java.util.List fExps

fCallNodes

protected java.util.List fCallNodes

fUseSymList

protected java.util.List fUseSymList

fDefExpId

protected ExpId fDefExpId

fCorrespondingExpId

protected ExpId fCorrespondingExpId

fDbgLevel

public final int fDbgLevel
コンストラクタの詳細

SetRefReprImpl

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

getIR

public IR getIR()
インタフェース SetRefRepr の記述:
Returns the IR node this SetRefRepr represents. getIR() usually refers to the top subtree corresponding to this SetRefREpr, but in case of IfStmt it refers to if-condition expression, and in case of SwitchStmt, it refers to selection-expression. The top subtree corresponding to this SetRefRepr can be get by subpFlow.getLinkedSubtreeOfExpId(getCorrespondingExpId()). //##62

定義:
インタフェース SetRefRepr 内の getIR
戻り値:
the node this SetRefRepr represents.

useSyms

public java.util.Set useSyms()
インタフェース SetRefRepr の記述:
Returns the Set of the FlowAnalSyms used in this SetRefRepr. All symbols whose values can be possibly referred within this SetRefRepr are included, but those that can be referred to through the external calls (i.e. global symbols) within this SetRefRepr are not considered.

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

useSymList

public java.util.List useSymList()
インタフェース SetRefRepr の記述:
Returns the List of FlowAnalSyms used in this SetRefRepr. All symbols whose values can be possibly referred within this SetRefRepr are included, but those that can be referred to through the external calls (i.e. global symbols) within this SetRefRepr are not considered.

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

getUseFlowAnalSyms

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

topUseNode

public IR topUseNode()
インタフェース SetRefRepr の記述:
If this is a value-setting node, returns the top node of the RHS. If not, returns the same node as getIR().

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

defExpId

public ExpId defExpId()

getDefSym

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

getDefFlowAnalSym

public FlowAnalSym getDefFlowAnalSym()

toString

public java.lang.String toString()
インタフェース SetRefRepr の記述:
Converts to a String object.

定義:
インタフェース SetRefRepr 内の toString
オーバーライド:
クラス java.lang.Object 内の toString

expIterator

public java.util.Iterator expIterator()
Returns the Set of nodes that have FlowAnalSym attached and are not a Def node. Returns the Set of nodes that have FlowAnalSym attached and are not a Def node.

定義:
インタフェース SetRefRepr 内の expIterator
関連項目:
SetRefRepr.defNode()

expListIterator

public java.util.ListIterator expListIterator()
インタフェース SetRefRepr の記述:
Returns a DFO iterator that iterates over nodes that have a FlowExpId attached, and, if "this" is value-setting, is not a Def node. // NEEDED

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

expListIteratorFromBottom

public java.util.ListIterator expListIteratorFromBottom()

exps

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

戻り値:
the list of expressions

exps

abstract java.util.List exps(boolean pFromTop,
                             boolean pFromLeft)

expListIterator

public java.util.ListIterator expListIterator(boolean pFromTop,
                                              boolean pFromLeft)
インタフェース SetRefRepr の記述:
Returns an DFO iterator that iterates over nodes that have a FlowExpId attached, and, if "this" is value-setting, is not a Def node. // NEEDED

定義:
インタフェース SetRefRepr 内の expListIterator
パラメータ:
pFromTop - iterate from top?
pFromLeft - iterate from left?

getFlag

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

setFlag

public void setFlag(int pFlagNumber,
                    boolean pYesNo)
定義:
インタフェース SetRefRepr 内の setFlag

allFalse

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

sets

public boolean sets()
インタフェース SetRefRepr の記述:
Returns true if this SetRefRepr involves value-setting, other than via the external call.

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

hasControl

public boolean hasControl()
インタフェース SetRefRepr の記述:
Does this SetRefRepr is at the end of the BBlock and has a role to determine the flow of control after this SetRefRepr?

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

isReturn

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

getBBlock

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

getCorrespondingExpId

public ExpId getCorrespondingExpId()