|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
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 内の getBlockNumberpublic IR getIrLink()
BBlock の記述:
BBlock 内の getIrLinkpublic void setIrLink(LabeledStmt pLabeledStmt)
BBlock の記述:
BBlock 内の setIrLinkpublic Label getLabel()
BBlock の記述:
BBlock 内の getLabelpublic java.util.List getPredList()
BBlock の記述:
BBlock 内の getPredListpublic java.util.List getSuccList()
BBlock の記述:
BBlock 内の getSuccListpublic Edge getPredEdge(BBlock pFromBBlock)
BBlock の記述:
BBlock 内の getPredEdgepublic Edge getSuccEdge(BBlock pToBBlock)
BBlock の記述:
BBlock 内の getSuccEdgepublic boolean isEntryBlock()
BBlock 内の isEntryBlockpublic boolean isExitBlock()
BBlock 内の isExitBlockpublic boolean isLoopBackEdge(BBlock pPredecessor)
pPredecessor - basic block contained in a basic
block graph containing this block.
public BBlock getImmediateDominator()
BBlock 内の getImmediateDominatorpublic void setImmediateDominator(BBlock pDominator)
BBlock 内の setImmediateDominatorpublic java.util.List getDominatedChildren()
BBlock 内の getDominatedChildrenpublic void setDominatedChildren(java.util.LinkedList pDominatedChildren)
BBlock 内の setDominatedChildrenpublic BBlock getImmediatePostDominator()
BBlock 内の getImmediatePostDominatorpublic void setImmediatePostDominator(BBlock pPostDominator)
BBlock 内の setImmediatePostDominatorpublic java.util.List getPostDominatedChildren()
BBlock 内の getPostDominatedChildrenpublic void setPostDominatedChildren(java.util.LinkedList pPostDominatedChildren)
BBlock 内の setPostDominatedChildrenpublic BBlock getNextInDFO()
BBlock の記述:
BBlock 内の getNextInDFOpublic void setNextInDFO(BBlock pNext)
BBlock の記述:
BBlock 内の setNextInDFOpNext - Next BBlock in depth first order.
This method is called in linkInDepthFirstOrder.public BBlock getNextInInverseDFO()
BBlock の記述:
BBlock 内の getNextInInverseDFOpublic void setNextInInverseDFO(BBlock pNext)
BBlock 内の setNextInInverseDFOpublic void linkInDepthFirstOrder(Subp pSubp)
BBlock の記述:
BBlock 内の linkInDepthFirstOrderpublic void linkInInverseDepthFirstOrder(Subp pSubp)
BBlock の記述:
BBlock 内の linkInInverseDepthFirstOrderpublic java.lang.Object getWork()
BBlock の記述:
BBlock 内の getWorkpublic void setWork(java.lang.Object pWork)
BBlock の記述:
BBlock 内の setWorkpublic java.lang.Object getWorkFA()
BBlock の記述:
BBlock 内の getWorkFApublic void setWorkFA(java.lang.Object pWorkFA)
BBlock の記述:
BBlock 内の setWorkFApublic BBlockSubtreeIterator bblockSubtreeIterator()
BBlock の記述:
BBlock 内の bblockSubtreeIteratorpublic BBlockNodeIterator bblockNodeIterator()
BBlock の記述:
BBlock 内の bblockNodeIteratorpublic java.lang.String toString()
java.lang.Object 内の toStringpublic java.lang.String toStringShort()
BBlock の記述:
BBlock 内の toStringShortpublic java.lang.String toStringDetail()
BBlock の記述:
BBlock 内の toStringDetailpublic void printSubtrees()
public void addToPredList(BBlock pPred)
BBlock 内の addToPredListpPred - basic block to be added to the predecessor list
of this basic block.public void addToSuccList(BBlock pSucc)
BBlock 内の addToSuccListpublic void deleteFromPredList(BBlock pPred)
BBlock 内の deleteFromPredListpPred - basic block to be deleted from the predecessor list
of this basic block.public void deleteFromSuccList(BBlock pSucc)
BBlock 内の deleteFromSuccListpublic boolean getFlag(int pFlagNumber)
BBlock の記述:
BBlock 内の getFlagpFlagNumber - flag identification number (see below).
public void setFlag(int pFlagNumber,
boolean pYesNo)
BBlock 内の setFlag
public void allocateSpaceForDataFlowAnalysis(int pPointCount,
int pDefCount,
int pExpCount)
BBlock 内の allocateSpaceForDataFlowAnalysispublic boolean isDef(int pPos)
BBlock の記述:
BBlock 内の isDefpPos - position number attached to the definition node.
public boolean isKill(int pPos)
BBlock の記述:
BBlock 内の isKillpPos - position number attached to the definition node.
public boolean isReach(int pPos)
BBlock の記述:
BBlock 内の isReachpPos - position number attached to the definition node.
public boolean isDefined(Sym pSym)
BBlock の記述:
BBlock 内の isDefinedpSym - symbol representing a variable or a register
or expression identifier.
public boolean isUsed(Sym pSym)
BBlock の記述:
BBlock 内の isUsedpSym - symbol representing a variable or a register
or expression identifier.
public boolean isExposed(Sym pSym)
BBlock の記述:
BBlock 内の isExposedpSym - symbol representing a variable or a register
or expression identifier.
public boolean isEGen(ExpId pExpId)
BBlock の記述:
BBlock 内の isEGenpExpId - expression identifier assigned to the
expression.
public boolean isEKill(ExpId pExpId)
BBlock の記述:
BBlock 内の isEKillpExpId - expression identifier assigned to the
expression.
public boolean isAvailIn(ExpId pExpId)
BBlock の記述:
BBlock 内の isAvailInpExpId - expression identifier
representing an expression. ()
public boolean isAvailOut(ExpId pExpId)
BBlock の記述:
BBlock 内の isAvailOutpExpId - expression identifier
representing an expression. ()
public boolean isLiveIn(Sym pSym)
BBlock の記述:
BBlock 内の isLiveInpSym - variable or register or expression identifier
representing an expression.
public boolean isLiveOut(Sym pSym)
BBlock の記述:
BBlock 内の isLiveOutpSym - variable or register or expression identifier
representing an expression.
public boolean isDefIn(Sym pSym)
BBlock の記述:
BBlock 内の isDefInpSym - variable or register or expression identifier
representing an expression.
public boolean isDefOut(Sym pSym)
BBlock の記述:
BBlock 内の isDefOutpSym - variable or register or expression identifier
representing an expression.
protected boolean isSymExpOn(ExpVector pVector,
Sym pSym)
public DefVector getDef()
BBlock の記述:
BBlock 内の getDefpublic void setDef(DefVector pVect)
public DefVector getKill()
BBlock の記述:
BBlock 内の getKillpublic void setKill(DefVector pVect)
public DefVector getReach()
BBlock の記述:
BBlock 内の getReachpublic void setReach(DefVector pVect)
public FlowAnalSymVector getDefined()
BBlock の記述:
BBlock 内の getDefinedpublic void setDefined(FlowAnalSymVector pVect)
public FlowAnalSymVector getUsed()
BBlock の記述:
BBlock 内の getUsedpublic void setUsed(FlowAnalSymVector pVect)
public FlowAnalSymVector getExposed()
BBlock の記述:
BBlock 内の getExposedpublic void setExposed(FlowAnalSymVector pVect)
public ExpVector getEGen()
BBlock の記述:
BBlock 内の getEGenpublic void setEGen(ExpVector pVect)
public ExpVector getEKill()
BBlock の記述:
BBlock 内の getEKillpublic ExpVector getEKillAll()
BBlock の記述:
BBlock 内の getEKillAllpublic void setEKill(ExpVector pVect)
public ExpVector getAvailIn()
BBlock の記述:
BBlock 内の getAvailInpublic void setAvailIn(ExpVector pVect)
public ExpVector getAvailOut()
BBlock の記述:
BBlock 内の getAvailOutpublic void setAvailOut(ExpVector pVect)
public FlowAnalSymVector getLiveIn()
BBlock の記述:
BBlock 内の getLiveInpublic void setLiveIn(FlowAnalSymVector pVect)
public FlowAnalSymVector getLiveOut()
BBlock の記述:
BBlock 内の getLiveOutpublic void setLiveOut(FlowAnalSymVector pVect)
public FlowAnalSymVector getDefIn()
BBlock の記述:
BBlock 内の getDefInpublic void setDefIn(FlowAnalSymVector pVect)
public FlowAnalSymVector getDefOut()
BBlock の記述:
BBlock 内の getDefOutpublic void setDefOut(FlowAnalSymVector pVect)
public java.util.Set getDefNodes()
BBlock の記述:
BBlock 内の getDefNodespublic void setDefNodes(java.util.Set pSet)
public SubpFlow getSubpFlow()
BBlock の記述:
BBlock 内の getSubpFlowpublic int getBBlockNumber()
BBlock 内の getBBlockNumberpublic void setAflowBBlock(BBlock pBBlock)
BBlock 内の setAflowBBlockpublic BBlock getAflowBBlock()
BBlock 内の getAflowBBlockpublic 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
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||