coins.aflow
インタフェース FlowExpId

既知の実装クラスの一覧:
HashBasedFlowExpId

public interface FlowExpId


メソッドの概要
 DefUseList getDefUseList()
           
 ExpId getExpId()
           
 int getIndex()
          Returns the index attached to this FlowExpId.
 IR getLinkedNode()
          Returns an instance of the IR node whose associated FlowExpId is this.
 int getNumberOfOperations()
          Returns the number of operations this FlowExpId involves.
 java.util.Set getOperandSet()
          Returns the set of FlowAnalSyms that are operands of this FlowExpId.
 java.util.Set getOperandSet0()
          Returns the set of FlowAnalSyms that are operands of this FlowExpId, and that hold the value that may contribute to the result of the computation of this FlowExpId.
 IR getTree()
          Returns a copy of the tree structure this FlowExpId represents.
 UDList getUDList()
           
 boolean hasCall()
           
 boolean isLHS()
          Return true if the corresponding expression is left hand side expression of AssignStmt.
 void setLHSFlag()
          Set flag showing that corresponding expression is left hand side expression of AssignStmt.
 java.lang.String toStringShort()
           
 

メソッドの詳細

getTree

public IR getTree()
Returns a copy of the tree structure this FlowExpId represents. "Copy" means the node returned is not part of the main IR tree. Each invocation of this method returns the same copy created when this FlowExpId was created, and does not return a fresh copy of the IR tree each time.


getLinkedNode

public IR getLinkedNode()
Returns an instance of the IR node whose associated FlowExpId is this. Such a node is likely a part of the program tree so should not be modified.


getIndex

public int getIndex()
Returns the index attached to this FlowExpId. The indexing scope is the same as the scope of this FlowExpId.


getOperandSet

public java.util.Set getOperandSet()
Returns the set of FlowAnalSyms that are operands of this FlowExpId. An operand of a FlowExpId is simply a FlowAnalSym that is attached to one of the nodes that comprise the tree represented by the FlowExpId.


getOperandSet0

public java.util.Set getOperandSet0()
Returns the set of FlowAnalSyms that are operands of this FlowExpId, and that hold the value that may contribute to the result of the computation of this FlowExpId. For example, in HIR, if a symbol node is operated by the addressOf operator, and there is no contentsOf operator operating at all afterwards, the symbol attached to the symbol node is not included in the set returned by this method.


getNumberOfOperations

public int getNumberOfOperations()
Returns the number of operations this FlowExpId involves. This is not more than but roughly equal to the number of this FlowExpId's linked node's descendant nodes.


hasCall

public boolean hasCall()

getDefUseList

public DefUseList getDefUseList()

getUDList

public UDList getUDList()

getExpId

public ExpId getExpId()

toStringShort

public java.lang.String toStringShort()

setLHSFlag

public void setLHSFlag()
Set flag showing that corresponding expression is left hand side expression of AssignStmt.


isLHS

public boolean isLHS()
Return true if the corresponding expression is left hand side expression of AssignStmt. left hand side expression is not treated as common subexpression in usual case.

戻り値:
true if setLHSFlag() is called, false otherwise.