coins.flow
クラス BBlockImpl

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

public abstract class BBlockImpl
extends java.lang.Object
implements BBlock


フィールドの概要
protected  BBlock aflowBBlock
           
protected  ExpVector fAvailIn
           
protected  ExpVector fAvailOut
           
protected  int fBBlockNumber
           
 HIR fControlTransfer
           
 int fDbgLevel
           
protected  DefVector fDef
           
protected  FlowAnalSymVector fDefIn
           
protected  FlowAnalSymVector fDefined
           
protected  java.util.Set fDefNodes
           
protected  FlowAnalSymVector fDefOut
           
protected  java.util.LinkedList fDominatedChildren
           
protected  ExpVector fEGen
           
protected  ExpVector fEKill
           
protected  ExpVector fEKillAll
           
protected  java.util.HashMap fExpNodeListMap
           
protected  FlowAnalSymVector fExposed
           
protected  FlagBox fFlagBox
           
protected  BBlock fImmediateDominator
           
protected  BBlock fImmediatePostDominator
           
protected  DefVector fIn
           
protected  IR fIrLink
           
protected  DefVector fKill
           
protected  FlowAnalSymVector fLiveIn
           
protected  FlowAnalSymVector fLiveOut
           
 FlowRoot flowRoot
           
protected  BBlock fNextInDFO
           
protected  BBlock fNextInInverseDFO
           
protected  DefVector fOut
           
protected  java.util.LinkedList fPostDominatedChildren
           
protected  java.util.LinkedList fPredEdgeList
           
protected  java.util.LinkedList fPredList
           
protected  DefVector fReach
           
protected  java.util.LinkedList fSuccEdgeList
           
protected  java.util.LinkedList fSuccList
           
protected  FlowAnalSymVector fUsed
           
protected  java.lang.Object fWork
           
protected  java.lang.Object fWorkFA
           
 SubpFlow 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
 
コンストラクタの概要
BBlockImpl()
           
BBlockImpl(FlowRoot pFlowRoot, int pBBlockNumber)
          Create new basic block corresponding to the HIR labeled statement pLabeledStmt.
 
メソッドの概要
 void addToPredList(BBlock pPred)
          addToPredList addToSuccList Add the basic block pPred/pSucc to the list of predecessors/successors of this basic block, and this block is added to the list of successors/predecessors of pPred/pSucc.
 void addToSuccList(BBlock pSucc)
           
 void allocateSpaceForDataFlowAnalysis(int pPointCount, int pDefCount, int pExpCount)
           
 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.
 HIR controlTransfer()
          If this basic block ends with control transfer statement such as JUMP, RETURN, then this method returns the control transfer statement.
 void deleteFromPredList(BBlock pPred)
          deleteFromPredList deleteFromSuccList Delete the basic block pPred/pSucc from to the list of predecessors/successors of this basic block, and this block is deleted from the list of successors/predecessors of pPred/pSucc.
 void deleteFromSuccList(BBlock pSucc)
           
 BBlock getAflowBBlock()
           
 ExpVector getAvailIn()
          getAvailIn Get bit vector showing AvailIn set of this block.
 ExpVector getAvailInVector()
           
 ExpVector getAvailOut()
          getAvailOut Get bit vector showing AvailOut set of this block.
 ExpVector getAvailOutVector()
           
 int getBBlockNumber()
           
 int getBlockNumber()
          getBlockNumber Get the block number attached to this basic block.
 DefVector getDef()
          getDef Get bit vector showing Def set of this block.
 FlowAnalSymVector getDefIn()
          getDefIn Get bit vector showing DefIn set of this block.
 FlowAnalSymVector getDefined()
          getDefined Get bit vector showing Defined set of this block.
 FlowAnalSymVector getDefinedVector()
           
 FlowAnalSymVector getDefInVector()
           
 java.util.Set getDefNodes()
          getDefNodes Get the set of nodes defining a value.
 FlowAnalSymVector getDefOut()
          getDefOut Get bit vector showing DefOut set of this block.
 FlowAnalSymVector getDefOutVector()
           
 DefVector getDefVector()
           
 java.util.List getDominatedChildren()
          getDominatedChildren Get the list of basic blocks immediately dominated by this block.
 ExpVector getEGen()
          getEGen Get bit vector showing EGen set of this block.
 ExpVector getEGenVector()
           
 ExpVector getEKill()
          getEKill Get bit vector showing EKill set of this block.
 ExpVector getEKillAll()
          getEKillAll Get bit vector showing EKillAll set of this block.
 ExpVector getEKillAllVector()
           
 ExpVector getEKillVector()
           
 FlowAnalSymVector getExposed()
          getExposed Get bit vector showing Exposed set of this block.
 FlowAnalSymVector getExposedVector()
           
 boolean getFlag(int pFlagNumber)
          getFlag setFlag getFlag returns the value (true/false) of the flag indicated by pFlagNumber.
 BBlock getImmediateDominator()
          getImmediateDominator Get a basic block immediately dominating this block.
 BBlock getImmediatePostDominator()
          getImmediatePostDominator Get a basic block immediately post dominating this block.
 IR getIrLink()
          getIrLink Get the top-subtree that starts this basic block.
 DefVector getKill()
          getKill Get bit vector showing Kill set of this block.
 DefVector getKillVector()
           
 Label getLabel()
          getLabel Get a label attached to the first top-subtree of this basic block.
 FlowAnalSymVector getLiveIn()
          getLiveIn Get bit vector showing LiveIn set of this block.
 FlowAnalSymVector getLiveInVector()
           
 FlowAnalSymVector getLiveOut()
          getLiveOut Get bit vector showing LiveOut set of this block.
 FlowAnalSymVector getLiveOutVector()
           
 BBlock getNextInDFO()
          getNextInDFO Get the next BBlock in depth first order.
 BBlock getNextInInverseDFO()
          getNextInInverseDFO Get the next BBlock in inverse depth first order from exit BBlock. /** setNextInInverseDFO: Set the next BBlock in inverse depth first order from exit BBlock.
 java.util.List getPostDominatedChildren()
          getPostDominatedChildren Get the list of basic blocks immediately post dominated by this block.
 Edge getPredEdge(BBlock pFromBBlock)
          getPredEdge Get the edge corresponding to the predecessor/successor to/from this basic block.
 java.util.List getPredList()
          getPredList Get the predecessor list of this basic block.
 DefVector getReach()
          getReach Get bit vector showing Reach set of this block.
 DefVector getReachVector()
           
 SubpFlow getSubpFlow()
          getUseNodes Get the set of nodes using value of variable or register.
 Edge getSuccEdge(BBlock pToBBlock)
          getSuccEdge Get the edge corresponding to the predecessor/successor to/from this basic block.
 java.util.List getSuccList()
          getSuccList Get the successor list of this basic block.
 FlowAnalSymVector getUsed()
          getUsed Get bit vector showing Used set of this block.
 FlowAnalSymVector getUsedVector()
           
 java.lang.Object getWork()
          getWork setWork get/set information privately used in each phase.
 java.lang.Object getWorkFA()
          getWorkFA setWorkFA get/set information privately used in flow analysis.
protected  void initiateFields()
           
 boolean isAvailIn(ExpId pExpId)
          isAvailIn See if the expression represented by pExpId is available (value is always computed) at entry to this block.
 boolean isAvailOut(ExpId pExpId)
          isAvailOut See if the expression represented by pExpId is available (value is always computed) at exit from this block.
 boolean isDef(int pPos)
          isDef See if definition at position pPos is done in this block.
 boolean isDefIn(Sym pSym)
          isDefIn See if pSym is always defined at entry to this block whichever path may be take.
 boolean isDefined(Sym pSym)
          isDefined See if the value of pSym is defined in this block.
 boolean isDefOut(Sym pSym)
          isDefOut See if pSym is always defined at exit from this block.
 boolean isEGen(ExpId pExpId)
          isEGen See if expression designated by pReg is generated (computed in this block and afterwards its operand is not changed) in this block.
 boolean isEKill(ExpId pExpId)
          isEKill See if expression designated by pReg is killed (its operand is defined) in this block.
 boolean isEntryBlock()
          isEntryBlock See if this block is the entry block in the graph of basic blocks.
 boolean isExitBlock()
          isExitBlock See if this block is the exit block in the graph of basic blocks.
 boolean isExposed(Sym pSym)
          isExposed See if the variable of pSym is used in this block without setting its value in this block.
 boolean isKill(int pPos)
          isKill See if definition at position pPos is killed in this block.
 boolean isLiveIn(Sym pSym)
          isLiveIn See if pSym is live at entry to this block (value at entry is used in this block or in some successor of this block).
 boolean isLiveOut(Sym pSym)
          isLiveOut See if pSym is live at exit from this block (value at exit is used in some successor of this block).
 boolean isLoopBackEdge(BBlock pPredecessor)
          isLoopBackEdge See if an edge is a loop back edge or not.
 boolean isReach(int pPos)
          isReach See if definition at position pPos reaches to the entry point of this block.
protected  boolean isSymExpOn(ExpVector pVector, Sym pSym)
          isSymExpOn Return true/false according to 1/0 of pVector bit corresponding to pSym.
 boolean isUsed(Sym pSym)
          isUsed See if the value of pSym is used in this block.
 void linkInDepthFirstOrder(Subp pSubp)
          linkInDepthFirstOrder(Subp pSubp) Link basic blocks of subprogram pSubp in depth first order starting from the entry BBlock.
 void linkInInverseDepthFirstOrder(Subp pSubp)
          linkInInverseDepthFirstOrder(Subp pSubp) Link basic blocks of subprogram pSubp in inverse depth first order starting from the exit BBlock.
 void printSubtrees()
          printSubtrees Print the sequence of subtrees contained in this block.
 void resetForDataFlowAnal()
           
 void setAflowBBlock(BBlock pBBlock)
           
 void setAvailIn(ExpVector pVect)
           
 void setAvailOut(ExpVector pVect)
           
 void setDef(DefVector pVect)
           
 void setDefIn(FlowAnalSymVector pVect)
           
 void setDefined(FlowAnalSymVector pVect)
           
 void setDefNodes(java.util.Set pSet)
           
 void setDefOut(FlowAnalSymVector pVect)
           
 void setDominatedChildren(java.util.LinkedList pDominatedChildren)
           
 void setEGen(ExpVector pVect)
           
 void setEKill(ExpVector pVect)
           
 void setExposed(FlowAnalSymVector pVect)
           
 void setFlag(int pFlagNumber, boolean pYesNo)
           
 void setImmediateDominator(BBlock pDominator)
           
 void setImmediatePostDominator(BBlock pPostDominator)
           
 void setIrLink(LabeledStmt pLabeledStmt)
          setIrLink Set HIR statement pLabeledStmt or LIR DefLabel subtree as the first top-subtree that starts this basic block.
 void setKill(DefVector pVect)
           
 void setLiveIn(FlowAnalSymVector pVect)
           
 void setLiveOut(FlowAnalSymVector pVect)
           
 void setNextInDFO(BBlock pNext)
          setNextInDFO Record the next BBlock in depth first order.
 void setNextInInverseDFO(BBlock pNext)
           
 void setPostDominatedChildren(java.util.LinkedList pPostDominatedChildren)
           
 void setReach(DefVector pVect)
           
 void setUsed(FlowAnalSymVector pVect)
           
 void setWork(java.lang.Object pWork)
          setWork get/set information privately used in each phase.
 void setWorkFA(java.lang.Object pWorkFA)
          getWorkFA setWorkFA get/set information privately used in flow analysis.
 java.lang.String toString()
           
 java.lang.String toStringDetail()
          toStringDetail
 java.lang.String toStringShort()
          toStringShort
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.flow.BBlock から継承したメソッド
getFirstSubtree, getLastSubtree
 

フィールドの詳細

flowRoot

public final FlowRoot flowRoot

subpFlow

public final SubpFlow subpFlow

fBBlockNumber

protected int fBBlockNumber

fIrLink

protected IR fIrLink

fPredList

protected java.util.LinkedList fPredList

fSuccList

protected java.util.LinkedList fSuccList

fPredEdgeList

protected java.util.LinkedList fPredEdgeList

fSuccEdgeList

protected java.util.LinkedList fSuccEdgeList

fImmediateDominator

protected BBlock fImmediateDominator

fImmediatePostDominator

protected BBlock fImmediatePostDominator

fDominatedChildren

protected java.util.LinkedList fDominatedChildren

fPostDominatedChildren

protected java.util.LinkedList fPostDominatedChildren

fNextInDFO

protected BBlock fNextInDFO

fNextInInverseDFO

protected BBlock fNextInInverseDFO

fFlagBox

protected FlagBox fFlagBox

fWork

protected java.lang.Object fWork

fWorkFA

protected java.lang.Object fWorkFA

fExpNodeListMap

protected java.util.HashMap fExpNodeListMap

fDef

protected DefVector fDef

fKill

protected DefVector fKill

fIn

protected DefVector fIn

fOut

protected DefVector fOut

fReach

protected DefVector fReach

fEGen

protected ExpVector fEGen

fEKill

protected ExpVector fEKill

fEKillAll

protected ExpVector fEKillAll

fAvailIn

protected ExpVector fAvailIn

fAvailOut

protected ExpVector fAvailOut

fDefined

protected FlowAnalSymVector fDefined

fExposed

protected FlowAnalSymVector fExposed

fLiveIn

protected FlowAnalSymVector fLiveIn

fLiveOut

protected FlowAnalSymVector fLiveOut

fDefIn

protected FlowAnalSymVector fDefIn

fDefOut

protected FlowAnalSymVector fDefOut

fUsed

protected FlowAnalSymVector fUsed

fDefNodes

protected java.util.Set fDefNodes

fDbgLevel

public final int fDbgLevel

aflowBBlock

protected BBlock aflowBBlock

fControlTransfer

public HIR fControlTransfer
コンストラクタの詳細

BBlockImpl

public BBlockImpl()

BBlockImpl

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

メソッドの詳細

initiateFields

protected void initiateFields()

getBlockNumber

public int getBlockNumber()
インタフェース BBlock の記述:
getBlockNumber Get the block number attached to this basic block.

定義:
インタフェース BBlock 内の getBlockNumber
戻り値:
the block number attached to this basic block.

getIrLink

public IR getIrLink()
インタフェース BBlock の記述:
getIrLink Get the top-subtree that starts this basic block. See bblockSubtreeIterator or bblockNodeIterator for traversing top-subtrees or nodes in the basic block. See getLirTreeList for using LIRTreeListIterator. returned value of getIrLink is not applicable for LIRTreeListIterator.

定義:
インタフェース BBlock 内の getIrLink
戻り値:
LabeledStmt or DefLabel subtree that is the first top-subtree in this basic block.

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

getLabel

public Label getLabel()
インタフェース BBlock の記述:
getLabel Get a label attached to the first top-subtree of this basic block.

定義:
インタフェース BBlock 内の getLabel
戻り値:
the label attached to the first top-subtree of this basic block. If multiple labels are attached, return the first one which show a relation with other blocks.

getPredList

public java.util.List getPredList()
インタフェース BBlock の記述:
getPredList Get the predecessor list of this basic block. If this has no predecessor, empty list is returned. Elements of the list can be accessed by List methods. See ListIterator for traversing BBlocks in the predecessor/successor list.

定義:
インタフェース BBlock 内の getPredList
戻り値:
the predecessor list of this basic block.

getSuccList

public java.util.List getSuccList()
インタフェース BBlock の記述:
getSuccList Get the successor list of this basic block. If this has no successor, empty list is returned. Elements of the list can be accessed by List methods. See ListIterator for traversing BBlocks in the successor list.

定義:
インタフェース BBlock 内の getSuccList
戻り値:
the successor list of this basic block.

getPredEdge

public Edge getPredEdge(BBlock pFromBBlock)
インタフェース BBlock の記述:
getPredEdge Get the edge corresponding to the predecessor/successor to/from this basic block. getPredEdge Get the edge spanning from pFromBBlock to this. getSuccEdge Get the edge spanning from this to pToBBlock.

定義:
インタフェース BBlock 内の getPredEdge

getSuccEdge

public Edge getSuccEdge(BBlock pToBBlock)
インタフェース BBlock の記述:
getSuccEdge Get the edge corresponding to the predecessor/successor to/from this basic block. getPredEdge Get the edge spanning from pFromBBlock to this. getSuccEdge Get the edge spanning from this to pToBBlock.

定義:
インタフェース BBlock 内の getSuccEdge

isEntryBlock

public boolean isEntryBlock()
isEntryBlock See if this block is the entry block in the graph of basic blocks.

定義:
インタフェース BBlock 内の isEntryBlock
戻り値:
true if this is the entry block in the graph of basic blocks, else return false.

isExitBlock

public boolean isExitBlock()
isExitBlock See if this block is the exit block in the graph of basic blocks.

定義:
インタフェース BBlock 内の isExitBlock
戻り値:
true if this is the exit block in the graph of basic blocks, else return false.

isLoopBackEdge

public boolean isLoopBackEdge(BBlock pPredecessor)
isLoopBackEdge See if an edge is a loop back edge or not.

パラメータ:
pPredecessor - basic block contained in a basic block graph containing this block.
戻り値:
true if the edge from pPredecessor to this block is a loop back edge, otherwise return false.

getImmediateDominator

public BBlock getImmediateDominator()
getImmediateDominator Get a basic block immediately dominating this block.

定義:
インタフェース BBlock 内の getImmediateDominator
戻り値:
the basic block immediately dominating this block.

setImmediateDominator

public void setImmediateDominator(BBlock pDominator)
定義:
インタフェース BBlock 内の setImmediateDominator

getDominatedChildren

public java.util.List getDominatedChildren()
getDominatedChildren Get the list of basic blocks immediately dominated by this block. Elements of the list can be handled by List methods.

定義:
インタフェース BBlock 内の getDominatedChildren
戻り値:
the list of basic blocks immediately dominated by this block.

setDominatedChildren

public void setDominatedChildren(java.util.LinkedList pDominatedChildren)
定義:
インタフェース BBlock 内の setDominatedChildren

getImmediatePostDominator

public BBlock getImmediatePostDominator()
getImmediatePostDominator Get a basic block immediately post dominating this block.

定義:
インタフェース BBlock 内の getImmediatePostDominator
戻り値:
the basic block immediately post dominating this block.

setImmediatePostDominator

public void setImmediatePostDominator(BBlock pPostDominator)
定義:
インタフェース BBlock 内の setImmediatePostDominator

getPostDominatedChildren

public java.util.List getPostDominatedChildren()
getPostDominatedChildren Get the list of basic blocks immediately post dominated by this block. Elements of the list can be handled by List methods.

定義:
インタフェース BBlock 内の getPostDominatedChildren
戻り値:
the list of basic blocks immediately post dominated by this block.

setPostDominatedChildren

public void setPostDominatedChildren(java.util.LinkedList pPostDominatedChildren)
定義:
インタフェース BBlock 内の setPostDominatedChildren

getNextInDFO

public BBlock getNextInDFO()
インタフェース BBlock の記述:
getNextInDFO Get the next BBlock in depth first order. Before calling getNextInDFO, call linkInDepthFirstOrder.

定義:
インタフェース BBlock 内の getNextInDFO

setNextInDFO

public void setNextInDFO(BBlock pNext)
インタフェース BBlock の記述:
setNextInDFO Record the next BBlock in depth first order.

定義:
インタフェース BBlock 内の setNextInDFO
パラメータ:
pNext - Next BBlock in depth first order. This method is called in linkInDepthFirstOrder.

getNextInInverseDFO

public BBlock getNextInInverseDFO()
インタフェース BBlock の記述:
getNextInInverseDFO Get the next BBlock in inverse depth first order from exit BBlock. /** setNextInInverseDFO: Set the next BBlock in inverse depth first order from exit BBlock.

定義:
インタフェース BBlock 内の getNextInInverseDFO

setNextInInverseDFO

public void setNextInInverseDFO(BBlock pNext)
定義:
インタフェース BBlock 内の setNextInInverseDFO

linkInDepthFirstOrder

public void linkInDepthFirstOrder(Subp pSubp)
インタフェース BBlock の記述:
linkInDepthFirstOrder(Subp pSubp) Link basic blocks of subprogram pSubp in depth first order starting from the entry BBlock.

定義:
インタフェース BBlock 内の linkInDepthFirstOrder

linkInInverseDepthFirstOrder

public void linkInInverseDepthFirstOrder(Subp pSubp)
インタフェース BBlock の記述:
linkInInverseDepthFirstOrder(Subp pSubp) Link basic blocks of subprogram pSubp in inverse depth first order starting from the exit BBlock.

定義:
インタフェース BBlock 内の linkInInverseDepthFirstOrder

getWork

public java.lang.Object getWork()
インタフェース BBlock の記述:
getWork setWork get/set information privately used in each phase.

定義:
インタフェース BBlock 内の getWork

setWork

public void setWork(java.lang.Object pWork)
インタフェース BBlock の記述:
setWork get/set information privately used in each phase.

定義:
インタフェース BBlock 内の setWork

getWorkFA

public java.lang.Object getWorkFA()
インタフェース BBlock の記述:
getWorkFA setWorkFA get/set information privately used in flow analysis.

定義:
インタフェース BBlock 内の getWorkFA

setWorkFA

public void setWorkFA(java.lang.Object pWorkFA)
インタフェース BBlock の記述:
getWorkFA setWorkFA get/set information privately used in flow analysis.

定義:
インタフェース BBlock 内の setWorkFA

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
戻り値:
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
戻り値:
the node iterator for this BBlock.

toString

public java.lang.String toString()
オーバーライド:
クラス java.lang.Object 内の toString

toStringShort

public java.lang.String toStringShort()
インタフェース BBlock の記述:
toStringShort

定義:
インタフェース BBlock 内の toStringShort
戻り値:
Basic block number and predecessor/successor list.

toStringDetail

public java.lang.String toStringDetail()
インタフェース BBlock の記述:
toStringDetail

定義:
インタフェース BBlock 内の toStringDetail
戻り値:
toStringShort(), linked node, and flags.

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.


addToPredList

public void addToPredList(BBlock pPred)
addToPredList addToSuccList Add the basic block pPred/pSucc to the list of predecessors/successors of this basic block, and this block is added to the list of successors/predecessors of pPred/pSucc.

定義:
インタフェース BBlock 内の addToPredList
パラメータ:
pPred - basic block to be added to the predecessor list of this basic block.

addToSuccList

public void addToSuccList(BBlock pSucc)
定義:
インタフェース BBlock 内の addToSuccList

deleteFromPredList

public void deleteFromPredList(BBlock pPred)
deleteFromPredList deleteFromSuccList Delete the basic block pPred/pSucc from to the list of predecessors/successors of this basic block, and this block is deleted from the list of successors/predecessors of pPred/pSucc.

定義:
インタフェース BBlock 内の deleteFromPredList
パラメータ:
pPred - basic block to be deleted from the predecessor list of this basic block.

deleteFromSuccList

public void deleteFromSuccList(BBlock pSucc)
定義:
インタフェース BBlock 内の deleteFromSuccList

getFlag

public boolean getFlag(int pFlagNumber)
インタフェース BBlock の記述:
getFlag setFlag getFlag returns the value (true/false) of the flag indicated by pFlagNumber. setFlag sets the flag of specified number.

定義:
インタフェース BBlock 内の getFlag
パラメータ:
pFlagNumber - flag identification number (see below).

setFlag

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

allocateSpaceForDataFlowAnalysis

public void allocateSpaceForDataFlowAnalysis(int pPointCount,
                                             int pDefCount,
                                             int pExpCount)
定義:
インタフェース BBlock 内の allocateSpaceForDataFlowAnalysis

isDef

public boolean isDef(int pPos)
インタフェース BBlock の記述:
isDef See if definition at position pPos is done in this block.

定義:
インタフェース BBlock 内の isDef
パラメータ:
pPos - position number attached to the definition node.
戻り値:
true if the definition is done in this block, false otherwise.

isKill

public boolean isKill(int pPos)
インタフェース BBlock の記述:
isKill See if definition at position pPos is killed in this block.

定義:
インタフェース BBlock 内の isKill
パラメータ:
pPos - position number attached to the definition node.
戻り値:
true if the definition at pPos is killed in this block, false otherwise.

isReach

public boolean isReach(int pPos)
インタフェース BBlock の記述:
isReach See if definition at position pPos reaches to the entry point of this block.

定義:
インタフェース BBlock 内の isReach
パラメータ:
pPos - position number attached to the definition node.
戻り値:
true if the definition at pPos reaches to the entry point of this block, false otherwise.

isDefined

public boolean isDefined(Sym pSym)
インタフェース BBlock の記述:
isDefined See if the value of pSym is defined in this block.

定義:
インタフェース BBlock 内の isDefined
パラメータ:
pSym - symbol representing a variable or a register or expression identifier.
戻り値:
true if p(def(pSym)) is included in this block, false otherwise.

isUsed

public boolean isUsed(Sym pSym)
インタフェース BBlock の記述:
isUsed See if the value of pSym is used in this block.

定義:
インタフェース BBlock 内の isUsed
パラメータ:
pSym - symbol representing a variable or a register or expression identifier.
戻り値:
true if p(use(pSym)) is included in this block, false otherwise.

isExposed

public boolean isExposed(Sym pSym)
インタフェース BBlock の記述:
isExposed See if the variable of pSym is used in this block without setting its value in this block.

定義:
インタフェース BBlock 内の isExposed
パラメータ:
pSym - symbol representing a variable or a register or expression identifier.
戻り値:
true if pSym is used in this block and it is not set in this block before the use point.

isEGen

public boolean isEGen(ExpId pExpId)
インタフェース BBlock の記述:
isEGen See if expression designated by pReg is generated (computed in this block and afterwards its operand is not changed) in this block.

定義:
インタフェース BBlock 内の isEGen
パラメータ:
pExpId - expression identifier assigned to the expression.
戻り値:
true if the expression is generated in this block, false otherwise.

isEKill

public boolean isEKill(ExpId pExpId)
インタフェース BBlock の記述:
isEKill See if expression designated by pReg is killed (its operand is defined) in this block.

定義:
インタフェース BBlock 内の isEKill
パラメータ:
pExpId - expression identifier assigned to the expression.
戻り値:
true if the expression is killed in this block, false otherwise.

isAvailIn

public boolean isAvailIn(ExpId pExpId)
インタフェース BBlock の記述:
isAvailIn See if the expression represented by pExpId is available (value is always computed) at entry to this block.

定義:
インタフェース BBlock 内の isAvailIn
パラメータ:
pExpId - expression identifier representing an expression. ()
戻り値:
true if pExpId is available at entry to this block, false otherwise.

isAvailOut

public boolean isAvailOut(ExpId pExpId)
インタフェース BBlock の記述:
isAvailOut See if the expression represented by pExpId is available (value is always computed) at exit from this block.

定義:
インタフェース BBlock 内の isAvailOut
パラメータ:
pExpId - expression identifier representing an expression. ()
戻り値:
true if pExpId is available at exit from this block, false otherwise.

isLiveIn

public boolean isLiveIn(Sym pSym)
インタフェース BBlock の記述:
isLiveIn See if pSym is live at entry to this block (value at entry is used in this block or in some successor of this block).

定義:
インタフェース BBlock 内の isLiveIn
パラメータ:
pSym - variable or register or expression identifier representing an expression.
戻り値:
true if pSym is live at entry to this block, false otherwise.

isLiveOut

public boolean isLiveOut(Sym pSym)
インタフェース BBlock の記述:
isLiveOut See if pSym is live at exit from this block (value at exit is used in some successor of this block).

定義:
インタフェース BBlock 内の isLiveOut
パラメータ:
pSym - variable or register or expression identifier representing an expression.
戻り値:
true if pSym is live at exit from this block, false otherwise.

isDefIn

public boolean isDefIn(Sym pSym)
インタフェース BBlock の記述:
isDefIn See if pSym is always defined at entry to this block whichever path may be take.

定義:
インタフェース BBlock 内の isDefIn
パラメータ:
pSym - variable or register or expression identifier representing an expression.
戻り値:
true if pSym is always defined at entry to this block, false otherwise.

isDefOut

public boolean isDefOut(Sym pSym)
インタフェース BBlock の記述:
isDefOut See if pSym is always defined at exit from this block.

定義:
インタフェース BBlock 内の isDefOut
パラメータ:
pSym - variable or register or expression identifier representing an expression.
戻り値:
true if pSym is always defined at exit from this block, false otherwise.

isSymExpOn

protected boolean isSymExpOn(ExpVector pVector,
                             Sym pSym)
isSymExpOn Return true/false according to 1/0 of pVector bit corresponding to pSym. If pSym is ExpId, its index is used as pVector bit position. If pSym is Var, Param, Elem, then ExpId corresponding to pSym is taken and its index is used as the bit position.


getDef

public DefVector getDef()
インタフェース BBlock の記述:
getDef Get bit vector showing Def set of this block.

定義:
インタフェース BBlock 内の getDef
戻り値:
bit vector representing Def(B) of this block B.

setDef

public void setDef(DefVector pVect)

getKill

public DefVector getKill()
インタフェース BBlock の記述:
getKill Get bit vector showing Kill set of this block.

定義:
インタフェース BBlock 内の getKill
戻り値:
bit vector representing Kill(B) of this block B.

setKill

public void setKill(DefVector pVect)

getReach

public DefVector getReach()
インタフェース BBlock の記述:
getReach Get bit vector showing Reach set of this block.

定義:
インタフェース BBlock 内の getReach
戻り値:
bit vector representing Reach(B) of this block B.

setReach

public void setReach(DefVector pVect)

getDefined

public FlowAnalSymVector getDefined()
インタフェース BBlock の記述:
getDefined Get bit vector showing Defined set of this block.

定義:
インタフェース BBlock 内の getDefined
戻り値:
bit vector representing Defined(B) of this block B.

setDefined

public void setDefined(FlowAnalSymVector pVect)

getUsed

public FlowAnalSymVector getUsed()
インタフェース BBlock の記述:
getUsed Get bit vector showing Used set of this block.

定義:
インタフェース BBlock 内の getUsed
戻り値:
bit vector representing Used(B) of this block B.

setUsed

public void setUsed(FlowAnalSymVector pVect)

getExposed

public FlowAnalSymVector getExposed()
インタフェース BBlock の記述:
getExposed Get bit vector showing Exposed set of this block.

定義:
インタフェース BBlock 内の getExposed
戻り値:
bit vector representing Exposed(B) of this block B.

setExposed

public void setExposed(FlowAnalSymVector pVect)

getEGen

public ExpVector getEGen()
インタフェース BBlock の記述:
getEGen Get bit vector showing EGen set of this block.

定義:
インタフェース BBlock 内の getEGen
戻り値:
bit vector representing EGen(B) of this block B.

setEGen

public void setEGen(ExpVector pVect)

getEKill

public ExpVector getEKill()
インタフェース BBlock の記述:
getEKill Get bit vector showing EKill set of this block.

定義:
インタフェース BBlock 内の getEKill
戻り値:
bit vector representing EKill(B) of this block B.

getEKillAll

public ExpVector getEKillAll()
インタフェース BBlock の記述:
getEKillAll Get bit vector showing EKillAll set of this block. EKillAll is cumulative set of expressions killed by some statements in this BBlock, that is, once an expression is killed by some staement, then it is included in EKillAll even if it is recomputed.

定義:
インタフェース BBlock 内の getEKillAll
戻り値:
bit vector representing EKillAll(B) of this block B.

setEKill

public void setEKill(ExpVector pVect)

getAvailIn

public ExpVector getAvailIn()
インタフェース BBlock の記述:
getAvailIn Get bit vector showing AvailIn set of this block.

定義:
インタフェース BBlock 内の getAvailIn
戻り値:
bit vector representing AvailIn(B) of this block B.

setAvailIn

public void setAvailIn(ExpVector pVect)

getAvailOut

public ExpVector getAvailOut()
インタフェース BBlock の記述:
getAvailOut Get bit vector showing AvailOut set of this block.

定義:
インタフェース BBlock 内の getAvailOut
戻り値:
bit vector representing AvailOut(B) of this block B.

setAvailOut

public void setAvailOut(ExpVector pVect)

getLiveIn

public FlowAnalSymVector getLiveIn()
インタフェース BBlock の記述:
getLiveIn Get bit vector showing LiveIn set of this block.

定義:
インタフェース BBlock 内の getLiveIn
戻り値:
bit vector representing LiveIn(B) of this block B.

setLiveIn

public void setLiveIn(FlowAnalSymVector pVect)

getLiveOut

public FlowAnalSymVector getLiveOut()
インタフェース BBlock の記述:
getLiveOut Get bit vector showing LiveOut set of this block.

定義:
インタフェース BBlock 内の getLiveOut
戻り値:
bit vector representing LiveOut(B) of this block B.

setLiveOut

public void setLiveOut(FlowAnalSymVector pVect)

getDefIn

public FlowAnalSymVector getDefIn()
インタフェース BBlock の記述:
getDefIn Get bit vector showing DefIn set of this block.

定義:
インタフェース BBlock 内の getDefIn
戻り値:
bit vector representing DefIn(B) of this block B.

setDefIn

public void setDefIn(FlowAnalSymVector pVect)

getDefOut

public FlowAnalSymVector getDefOut()
インタフェース BBlock の記述:
getDefOut Get bit vector showing DefOut set of this block.

定義:
インタフェース BBlock 内の getDefOut
戻り値:
bit vector representing DefOut(B) of this block B.

setDefOut

public void setDefOut(FlowAnalSymVector pVect)

getDefNodes

public java.util.Set getDefNodes()
インタフェース BBlock の記述:
getDefNodes Get the set of nodes defining a value. To get each node in the set, see java.util.Set interface.

定義:
インタフェース BBlock 内の getDefNodes
戻り値:
the set of nodes that define a value of variable, etc.

setDefNodes

public void setDefNodes(java.util.Set pSet)

getSubpFlow

public SubpFlow getSubpFlow()
インタフェース BBlock の記述:
getUseNodes Get the set of nodes using value of variable or register. To get each node in the set, see java.util.Set interface.

定義:
インタフェース BBlock 内の getSubpFlow
戻り値:
the set of nodes that uses value of variable, etc.

getBBlockNumber

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

setAflowBBlock

public void setAflowBBlock(BBlock pBBlock)
定義:
インタフェース BBlock 内の setAflowBBlock

getAflowBBlock

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

getReachVector

public DefVector getReachVector()

getDefVector

public DefVector getDefVector()

getKillVector

public DefVector getKillVector()

getEGenVector

public ExpVector getEGenVector()

getEKillVector

public ExpVector getEKillVector()

getEKillAllVector

public ExpVector getEKillAllVector()

getAvailInVector

public ExpVector getAvailInVector()

getAvailOutVector

public ExpVector getAvailOutVector()

getDefinedVector

public FlowAnalSymVector getDefinedVector()

getExposedVector

public FlowAnalSymVector getExposedVector()

getLiveInVector

public FlowAnalSymVector getLiveInVector()

getLiveOutVector

public FlowAnalSymVector getLiveOutVector()

getDefInVector

public FlowAnalSymVector getDefInVector()

getDefOutVector

public FlowAnalSymVector getDefOutVector()

getUsedVector

public FlowAnalSymVector getUsedVector()

resetForDataFlowAnal

public void resetForDataFlowAnal()

controlTransfer

public HIR controlTransfer()
インタフェース BBlock の記述:
If this basic block ends with control transfer statement such as JUMP, RETURN, then this method returns the control transfer statement. If not, this method returns null.

定義:
インタフェース BBlock 内の controlTransfer
戻り値:
trailing control transfer statement if this BBlock ends with such statement.