coins.flow
クラス BBlockHirImpl

java.lang.Object
  |
  +--coins.flow.BBlockImpl
        |
        +--coins.flow.BBlockHirImpl
すべての実装インタフェース:
BBlock, BBlockHir

public class BBlockHirImpl
extends BBlockImpl
implements BBlockHir

BBlockHirImpl Implements BBlock methods applicalble for HIR.


フィールドの概要
 
クラス coins.flow.BBlockImpl から継承したフィールド
aflowBBlock, fAvailIn, fAvailOut, fBBlockNumber, fControlTransfer, fDbgLevel, fDef, fDefIn, fDefined, fDefNodes, fDefOut, fDominatedChildren, fEGen, fEKill, fEKillAll, fExpNodeListMap, fExposed, fFlagBox, fImmediateDominator, fImmediatePostDominator, fIn, fIrLink, fKill, fLiveIn, fLiveOut, flowRoot, fNextInDFO, fNextInInverseDFO, fOut, fPostDominatedChildren, fPredEdgeList, fPredList, fReach, fSuccEdgeList, fSuccList, fUsed, fWork, fWorkFA, subpFlow
 
インタフェース coins.flow.BBlock から継承したフィールド
HAS_CALL, HAS_JUMP, HAS_PTR_ASSIGN, HAS_STRUCT_UNION, IS_DELETED, IS_ENTRY, IS_EXIT, IS_MODIFIED, IS_RESTRUCTURED, LOOP_HEAD, LOOP_TAIL, UNDER_VISIT, USE_PTR, VISIT_OVER
 
コンストラクタの概要
BBlockHirImpl(FlowRoot pFlowRoot, LabeledStmt pLabeledStmt, int pBBlockNumber)
          Create new basic block corresponding to the HIR labeled statement pLabeledStmt.
 
メソッドの概要
 void addToExpNodeList(ExpId pExpId, HIR pExpNode)
          addToExpNodeList //##25 Add pExpNode to the list corresponding to pExpId to show that the expression for pExpId is computed at pExpNode.
 BBlockNodeIterator bblockNodeIterator()
          bblockNodeIterator Create an iterator to traverse all HIR nodes in this basic block.
 BBlockSubtreeIterator bblockSubtreeIterator()
          bblockSubtreeIterator Create an iterator to traverse all top-subtree in this basic block.
 java.util.List getExpNodeList(ExpId pExpId)
           
 Stmt getFirstStmt()
           
 IR getFirstSubtree()
          getFirstSubtree Get the first subtree contained in this block.
 Stmt getLastStmt()
           
 IR getLastSubtree()
          getLastSubtree Get the last subtree contained in this block.
 void printSubtrees()
          printSubtrees Print the sequence of subtrees contained in this block.
 void setIrLink(LabeledStmt pLabeledStmt)
          setIrLink Set HIR statement pLabeledStmt or LIR DefLabel subtree as the first top-subtree that starts this basic block.
 
クラス coins.flow.BBlockImpl から継承したメソッド
addToPredList, addToSuccList, allocateSpaceForDataFlowAnalysis, controlTransfer, deleteFromPredList, deleteFromSuccList, getAflowBBlock, getAvailIn, getAvailInVector, getAvailOut, getAvailOutVector, getBBlockNumber, getBlockNumber, getDef, getDefIn, getDefined, getDefinedVector, getDefInVector, getDefNodes, getDefOut, getDefOutVector, getDefVector, getDominatedChildren, getEGen, getEGenVector, getEKill, getEKillAll, getEKillAllVector, getEKillVector, getExposed, getExposedVector, getFlag, getImmediateDominator, getImmediatePostDominator, getIrLink, getKill, getKillVector, getLabel, getLiveIn, getLiveInVector, getLiveOut, getLiveOutVector, getNextInDFO, getNextInInverseDFO, getPostDominatedChildren, getPredEdge, getPredList, getReach, getReachVector, getSubpFlow, getSuccEdge, getSuccList, getUsed, getUsedVector, getWork, getWorkFA, initiateFields, isAvailIn, isAvailOut, isDef, isDefIn, isDefined, isDefOut, isEGen, isEKill, isEntryBlock, isExitBlock, isExposed, isKill, isLiveIn, isLiveOut, isLoopBackEdge, isReach, isSymExpOn, isUsed, linkInDepthFirstOrder, linkInInverseDepthFirstOrder, resetForDataFlowAnal, setAflowBBlock, setAvailIn, setAvailOut, setDef, setDefIn, setDefined, setDefNodes, setDefOut, setDominatedChildren, setEGen, setEKill, setExposed, setFlag, setImmediateDominator, setImmediatePostDominator, setKill, setLiveIn, setLiveOut, setNextInDFO, setNextInInverseDFO, setPostDominatedChildren, setReach, setUsed, setWork, setWorkFA, toString, toStringDetail, toStringShort
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.flow.BBlock から継承したメソッド
addToPredList, addToSuccList, allocateSpaceForDataFlowAnalysis, controlTransfer, deleteFromPredList, deleteFromSuccList, getAflowBBlock, getAvailIn, getAvailOut, getBBlockNumber, getBlockNumber, getDef, getDefIn, getDefined, getDefNodes, getDefOut, getDominatedChildren, getEGen, getEKill, getEKillAll, getExposed, getFlag, getImmediateDominator, getImmediatePostDominator, getIrLink, getKill, getLabel, getLiveIn, getLiveOut, getNextInDFO, getNextInInverseDFO, getPostDominatedChildren, getPredEdge, getPredList, getReach, getSubpFlow, getSuccEdge, getSuccList, getUsed, getWork, getWorkFA, isAvailIn, isAvailOut, isDef, isDefIn, isDefined, isDefOut, isEGen, isEKill, isEntryBlock, isExitBlock, isExposed, isKill, isLiveIn, isLiveOut, isReach, isUsed, linkInDepthFirstOrder, linkInInverseDepthFirstOrder, setAflowBBlock, setDominatedChildren, setFlag, setImmediateDominator, setImmediatePostDominator, setNextInDFO, setNextInInverseDFO, setPostDominatedChildren, setWork, setWorkFA, toStringDetail, toStringShort
 

コンストラクタの詳細

BBlockHirImpl

public BBlockHirImpl(FlowRoot pFlowRoot,
                     LabeledStmt pLabeledStmt,
                     int pBBlockNumber)
Create new basic block corresponding to the HIR labeled statement pLabeledStmt.

メソッドの詳細

setIrLink

public void setIrLink(LabeledStmt pLabeledStmt)
インタフェース BBlock の記述:
setIrLink Set HIR statement pLabeledStmt or LIR DefLabel subtree as the first top-subtree that starts this basic block.

定義:
インタフェース BBlock 内の setIrLink
オーバーライド:
クラス BBlockImpl 内の setIrLink

bblockSubtreeIterator

public BBlockSubtreeIterator bblockSubtreeIterator()
インタフェース BBlock の記述:
bblockSubtreeIterator Create an iterator to traverse all top-subtree in this basic block. All top-subtrees can be get by invoking next() for the iterator. The iterator skips such non-executable nodes as blockNode, listNode, stmtNode, ifNode, forNode, whileNode, untilNode, switchNode, labeledStmtNode with non-null Stmt body, and get executable statement body or expression under the skipped node. If a labeled statement has null statement body, it is not skipped.

定義:
インタフェース BBlock 内の bblockSubtreeIterator
オーバーライド:
クラス BBlockImpl 内の bblockSubtreeIterator
戻り値:
the BBlockSubtree iterator for this BBlock.

bblockNodeIterator

public BBlockNodeIterator bblockNodeIterator()
インタフェース BBlock の記述:
bblockNodeIterator Create an iterator to traverse all HIR nodes in this basic block. All nodes can be get by invoking next() for the iterator. To traverse executable node only, use nextExecutableNode() of the iterator (see BBlockNodeIterator interface).

定義:
インタフェース BBlock 内の bblockNodeIterator
オーバーライド:
クラス BBlockImpl 内の bblockNodeIterator
戻り値:
the node iterator for this BBlock.

getFirstSubtree

public IR getFirstSubtree()
インタフェース BBlock の記述:
getFirstSubtree Get the first subtree contained in this block. The first subtree is the one that is traversed first by bblockSubtreeIterator.

定義:
インタフェース BBlock 内の getFirstSubtree
戻り値:
the non-null first subtree of IR nodes contained in this block. If there is no non-null subtree, return null.

getLastSubtree

public IR getLastSubtree()
インタフェース BBlock の記述:
getLastSubtree Get the last subtree contained in this block. The last subtree is the one that is traversed last by bblockSubtreeIterator.

定義:
インタフェース BBlock 内の getLastSubtree
戻り値:
the non-null last subtree of IR nodes contained in this block. If there is no non-null subtree, return null.

printSubtrees

public void printSubtrees()
printSubtrees Print the sequence of subtrees contained in this block. The order of print is the same as that of bblockSubtreeIterator. "this" is any basic block.

オーバーライド:
クラス BBlockImpl 内の printSubtrees

addToExpNodeList

public void addToExpNodeList(ExpId pExpId,
                             HIR pExpNode)
addToExpNodeList //##25 Add pExpNode to the list corresponding to pExpId to show that the expression for pExpId is computed at pExpNode.

パラメータ:
pExpId - ExpId for pExpNode.
pExpNode - Expression other than LHS of assignment.

getExpNodeList

public java.util.List getExpNodeList(ExpId pExpId)

getFirstStmt

public Stmt getFirstStmt()
定義:
インタフェース BBlockHir 内の getFirstStmt

getLastStmt

public Stmt getLastStmt()
定義:
インタフェース BBlockHir 内の getLastStmt