|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.flow.BBlockImpl
インタフェース 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 |
フィールドの詳細 |
public final FlowRoot flowRoot
public final SubpFlow subpFlow
protected int fBBlockNumber
protected IR fIrLink
protected java.util.LinkedList fPredList
protected java.util.LinkedList fSuccList
protected java.util.LinkedList fPredEdgeList
protected java.util.LinkedList fSuccEdgeList
protected BBlock fImmediateDominator
protected BBlock fImmediatePostDominator
protected java.util.LinkedList fDominatedChildren
protected java.util.LinkedList fPostDominatedChildren
protected BBlock fNextInDFO
protected BBlock fNextInInverseDFO
protected FlagBox fFlagBox
protected java.lang.Object fWork
protected java.lang.Object fWorkFA
protected java.util.HashMap fExpNodeListMap
protected DefVector fDef
protected DefVector fKill
protected DefVector fIn
protected DefVector fOut
protected DefVector fReach
protected ExpVector fEGen
protected ExpVector fEKill
protected ExpVector fEKillAll
protected ExpVector fAvailIn
protected ExpVector fAvailOut
protected FlowAnalSymVector fDefined
protected FlowAnalSymVector fExposed
protected FlowAnalSymVector fLiveIn
protected FlowAnalSymVector fLiveOut
protected FlowAnalSymVector fDefIn
protected FlowAnalSymVector fDefOut
protected FlowAnalSymVector fUsed
protected java.util.Set fDefNodes
public final int fDbgLevel
protected BBlock aflowBBlock
public HIR fControlTransfer
コンストラクタの詳細 |
public BBlockImpl()
public BBlockImpl(FlowRoot pFlowRoot, int pBBlockNumber)
メソッドの詳細 |
protected void initiateFields()
public int getBlockNumber()
BBlock
の記述:
BBlock
内の getBlockNumber
public IR getIrLink()
BBlock
の記述:
BBlock
内の getIrLink
public void setIrLink(LabeledStmt pLabeledStmt)
BBlock
の記述:
BBlock
内の setIrLink
public Label getLabel()
BBlock
の記述:
BBlock
内の getLabel
public java.util.List getPredList()
BBlock
の記述:
BBlock
内の getPredList
public java.util.List getSuccList()
BBlock
の記述:
BBlock
内の getSuccList
public Edge getPredEdge(BBlock pFromBBlock)
BBlock
の記述:
BBlock
内の getPredEdge
public Edge getSuccEdge(BBlock pToBBlock)
BBlock
の記述:
BBlock
内の getSuccEdge
public boolean isEntryBlock()
BBlock
内の isEntryBlock
public boolean isExitBlock()
BBlock
内の isExitBlock
public boolean isLoopBackEdge(BBlock pPredecessor)
pPredecessor
- basic block contained in a basic
block graph containing this block.
public BBlock getImmediateDominator()
BBlock
内の getImmediateDominator
public void setImmediateDominator(BBlock pDominator)
BBlock
内の setImmediateDominator
public java.util.List getDominatedChildren()
BBlock
内の getDominatedChildren
public void setDominatedChildren(java.util.LinkedList pDominatedChildren)
BBlock
内の setDominatedChildren
public BBlock getImmediatePostDominator()
BBlock
内の getImmediatePostDominator
public void setImmediatePostDominator(BBlock pPostDominator)
BBlock
内の setImmediatePostDominator
public java.util.List getPostDominatedChildren()
BBlock
内の getPostDominatedChildren
public void setPostDominatedChildren(java.util.LinkedList pPostDominatedChildren)
BBlock
内の setPostDominatedChildren
public BBlock getNextInDFO()
BBlock
の記述:
BBlock
内の getNextInDFO
public void setNextInDFO(BBlock pNext)
BBlock
の記述:
BBlock
内の setNextInDFO
pNext
- Next BBlock in depth first order.
This method is called in linkInDepthFirstOrder.public BBlock getNextInInverseDFO()
BBlock
の記述:
BBlock
内の getNextInInverseDFO
public void setNextInInverseDFO(BBlock pNext)
BBlock
内の setNextInInverseDFO
public void linkInDepthFirstOrder(Subp pSubp)
BBlock
の記述:
BBlock
内の linkInDepthFirstOrder
public void linkInInverseDepthFirstOrder(Subp pSubp)
BBlock
の記述:
BBlock
内の linkInInverseDepthFirstOrder
public java.lang.Object getWork()
BBlock
の記述:
BBlock
内の getWork
public void setWork(java.lang.Object pWork)
BBlock
の記述:
BBlock
内の setWork
public java.lang.Object getWorkFA()
BBlock
の記述:
BBlock
内の getWorkFA
public void setWorkFA(java.lang.Object pWorkFA)
BBlock
の記述:
BBlock
内の setWorkFA
public BBlockSubtreeIterator bblockSubtreeIterator()
BBlock
の記述:
BBlock
内の bblockSubtreeIterator
public BBlockNodeIterator bblockNodeIterator()
BBlock
の記述:
BBlock
内の bblockNodeIterator
public java.lang.String toString()
java.lang.Object
内の toString
public java.lang.String toStringShort()
BBlock
の記述:
BBlock
内の toStringShort
public java.lang.String toStringDetail()
BBlock
の記述:
BBlock
内の toStringDetail
public void printSubtrees()
public void addToPredList(BBlock pPred)
BBlock
内の addToPredList
pPred
- basic block to be added to the predecessor list
of this basic block.public void addToSuccList(BBlock pSucc)
BBlock
内の addToSuccList
public void deleteFromPredList(BBlock pPred)
BBlock
内の deleteFromPredList
pPred
- basic block to be deleted from the predecessor list
of this basic block.public void deleteFromSuccList(BBlock pSucc)
BBlock
内の deleteFromSuccList
public boolean getFlag(int pFlagNumber)
BBlock
の記述:
BBlock
内の getFlag
pFlagNumber
- flag identification number (see below).public void setFlag(int pFlagNumber, boolean pYesNo)
BBlock
内の setFlag
public void allocateSpaceForDataFlowAnalysis(int pPointCount, int pDefCount, int pExpCount)
BBlock
内の allocateSpaceForDataFlowAnalysis
public boolean isDef(int pPos)
BBlock
の記述:
BBlock
内の isDef
pPos
- position number attached to the definition node.
public boolean isKill(int pPos)
BBlock
の記述:
BBlock
内の isKill
pPos
- position number attached to the definition node.
public boolean isReach(int pPos)
BBlock
の記述:
BBlock
内の isReach
pPos
- position number attached to the definition node.
public boolean isDefined(Sym pSym)
BBlock
の記述:
BBlock
内の isDefined
pSym
- symbol representing a variable or a register
or expression identifier.
public boolean isUsed(Sym pSym)
BBlock
の記述:
BBlock
内の isUsed
pSym
- symbol representing a variable or a register
or expression identifier.
public boolean isExposed(Sym pSym)
BBlock
の記述:
BBlock
内の isExposed
pSym
- symbol representing a variable or a register
or expression identifier.
public boolean isEGen(ExpId pExpId)
BBlock
の記述:
BBlock
内の isEGen
pExpId
- expression identifier assigned to the
expression.
public boolean isEKill(ExpId pExpId)
BBlock
の記述:
BBlock
内の isEKill
pExpId
- expression identifier assigned to the
expression.
public boolean isAvailIn(ExpId pExpId)
BBlock
の記述:
BBlock
内の isAvailIn
pExpId
- expression identifier
representing an expression. ()
public boolean isAvailOut(ExpId pExpId)
BBlock
の記述:
BBlock
内の isAvailOut
pExpId
- expression identifier
representing an expression. ()
public boolean isLiveIn(Sym pSym)
BBlock
の記述:
BBlock
内の isLiveIn
pSym
- variable or register or expression identifier
representing an expression.
public boolean isLiveOut(Sym pSym)
BBlock
の記述:
BBlock
内の isLiveOut
pSym
- variable or register or expression identifier
representing an expression.
public boolean isDefIn(Sym pSym)
BBlock
の記述:
BBlock
内の isDefIn
pSym
- variable or register or expression identifier
representing an expression.
public boolean isDefOut(Sym pSym)
BBlock
の記述:
BBlock
内の isDefOut
pSym
- variable or register or expression identifier
representing an expression.
protected boolean isSymExpOn(ExpVector pVector, Sym pSym)
public DefVector getDef()
BBlock
の記述:
BBlock
内の getDef
public void setDef(DefVector pVect)
public DefVector getKill()
BBlock
の記述:
BBlock
内の getKill
public void setKill(DefVector pVect)
public DefVector getReach()
BBlock
の記述:
BBlock
内の getReach
public void setReach(DefVector pVect)
public FlowAnalSymVector getDefined()
BBlock
の記述:
BBlock
内の getDefined
public void setDefined(FlowAnalSymVector pVect)
public FlowAnalSymVector getUsed()
BBlock
の記述:
BBlock
内の getUsed
public void setUsed(FlowAnalSymVector pVect)
public FlowAnalSymVector getExposed()
BBlock
の記述:
BBlock
内の getExposed
public void setExposed(FlowAnalSymVector pVect)
public ExpVector getEGen()
BBlock
の記述:
BBlock
内の getEGen
public void setEGen(ExpVector pVect)
public ExpVector getEKill()
BBlock
の記述:
BBlock
内の getEKill
public ExpVector getEKillAll()
BBlock
の記述:
BBlock
内の getEKillAll
public void setEKill(ExpVector pVect)
public ExpVector getAvailIn()
BBlock
の記述:
BBlock
内の getAvailIn
public void setAvailIn(ExpVector pVect)
public ExpVector getAvailOut()
BBlock
の記述:
BBlock
内の getAvailOut
public void setAvailOut(ExpVector pVect)
public FlowAnalSymVector getLiveIn()
BBlock
の記述:
BBlock
内の getLiveIn
public void setLiveIn(FlowAnalSymVector pVect)
public FlowAnalSymVector getLiveOut()
BBlock
の記述:
BBlock
内の getLiveOut
public void setLiveOut(FlowAnalSymVector pVect)
public FlowAnalSymVector getDefIn()
BBlock
の記述:
BBlock
内の getDefIn
public void setDefIn(FlowAnalSymVector pVect)
public FlowAnalSymVector getDefOut()
BBlock
の記述:
BBlock
内の getDefOut
public void setDefOut(FlowAnalSymVector pVect)
public java.util.Set getDefNodes()
BBlock
の記述:
BBlock
内の getDefNodes
public void setDefNodes(java.util.Set pSet)
public SubpFlow getSubpFlow()
BBlock
の記述:
BBlock
内の getSubpFlow
public int getBBlockNumber()
BBlock
内の getBBlockNumber
public void setAflowBBlock(BBlock pBBlock)
BBlock
内の setAflowBBlock
public BBlock getAflowBBlock()
BBlock
内の getAflowBBlock
public DefVector getReachVector()
public DefVector getDefVector()
public DefVector getKillVector()
public ExpVector getEGenVector()
public ExpVector getEKillVector()
public ExpVector getEKillAllVector()
public ExpVector getAvailInVector()
public ExpVector getAvailOutVector()
public FlowAnalSymVector getDefinedVector()
public FlowAnalSymVector getExposedVector()
public FlowAnalSymVector getLiveInVector()
public FlowAnalSymVector getLiveOutVector()
public FlowAnalSymVector getDefInVector()
public FlowAnalSymVector getDefOutVector()
public FlowAnalSymVector getUsedVector()
public void resetForDataFlowAnal()
public HIR controlTransfer()
BBlock
の記述:
BBlock
内の controlTransfer
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |