|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--coins.aflow.BBlockImpl
| フィールドの概要 | |
protected int |
fBBlockNumber
|
protected IR |
fIrLink
|
FlowRoot |
flowRoot
|
protected BBlock |
fNextInDFO
|
protected BBlock |
fNextInInverseDFO
|
protected java.util.LinkedList |
fPredEdgeList
|
protected java.util.LinkedList |
fPredList
|
(パッケージプライベート) FlowResults |
fResults
|
protected java.util.LinkedList |
fSuccEdgeList
|
protected java.util.LinkedList |
fSuccList
|
protected java.lang.Object |
fWork
|
| コンストラクタの概要 | |
protected |
BBlockImpl(SubpFlow pSubpFlow)
|
| メソッドの概要 | |
void |
addEdge(Exp pConditionalExp,
BBlock pToBlock)
addEdge: Add edge from this block to pToBlock that is to be taken when pConditionalExp is true. |
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 |
changePredEdge(BBlock pBefore,
BBlock pAfter)
|
void |
changeSuccEdge(BBlock pBefore,
BBlock pAfter)
changeEdge: Change the edge between this block and pBefore to a new edge between this block and pAfter. |
void |
deleteBBlock()
deleteBBlock: Delete this block and add successors of this block to the set of successors of all predecessors of this block. |
void |
deleteEdge(BBlock pToBlock)
deleteEdge: Delete the edge from this block to pToBlock and adjust related addresses and links so as to keep consistency. |
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)
|
void |
deleteFromSuccList0(BBlock pSucc)
|
void |
fuseSuccessor(BBlock pToBlock)
fuseSuccessor: Fuse the successor pToBlock with this block and make all successors of pToBlock as successors of this block. |
int |
getBBlockNumber()
getBBlockNumber: Get the block number attached to this basic block. |
ExpVector |
getDAvailIn()
getAvailIn: Get bit vector showing AvailIn set of this block. |
ExpVector |
getDAvailOut()
getAvailOut: Get bit vector showing AvailOut set of this block. |
DefVector |
getDDef()
|
FlowAnalSymVector |
getDDefIn()
getDefIn: Get bit vector showing DefIn set of this block. |
FlowAnalSymVector |
getDDefined()
getDefined: Get bit vector showing Defined set of this block. |
FlowAnalSymVector |
getDDefOut()
getDefOut: Get bit vector showing DefOut set of this block. |
DefVector |
getDef()
getDef: Get bit vector showing Def set of this block. |
ExpVector |
getDEGen()
getEGen: Get bit vector showing EGen set of this block. |
FlowAnalSymVector |
getDExposed()
getExposed: Get bit vector showing Exposed set of this block. |
DefVector |
getDKill()
getKill: Get bit vector showing Kill set of this block. |
java.util.List |
getDomForSubpFlow()
Get the list of BBlocks that dominate this BBlock in the SubpFlow this BBlock belongs to. |
java.util.List |
getDominatedChildrenForSubpFlow()
getDominatedChildren: Get the list of basic blocks immediately dominated by this block. |
FlowAnalSymVector |
getDUsed()
getDUsed: //##12 Get bit vector showing DUsed set of this block. |
BBlock |
getImmediateDominatorForSubpFlow()
getImmediateDominator: Get a basic block immediately dominating this block. |
BBlock |
getImmediatePostdominatorForSubpFlow()
getImmediatePostDominator: Get a basic block immediately post dominating this block. |
IR |
getIrLink()
getIrLink: Get the top-subtree that starts this basic block. |
BBlock |
getNextInDFO()
|
BBlock |
getNextInInverseDFO()
|
DefVector |
getPDef()
getPDef: Get bit vector showing PDef set of this block. |
FlowAnalSymVector |
getPDefined()
getPDefined: Get bit vector showing PDefined set of this block. |
ExpVector |
getPEKill()
getEKill: Get bit vector showing EKill set of this block. |
FlowAnalSymVector |
getPExposed()
getExposed: Get bit vector showing Exposed set of this block. |
DefVector |
getPKill()
getDestroy: Get bit vector showing Destroy set of this block. |
FlowAnalSymVector |
getPLiveIn()
getLiveIn: Get bit vector showing LiveIn set of this block. |
FlowAnalSymVector |
getPLiveOut()
getLiveOut: Get bit vector showing LiveOut set of this block. |
java.util.List |
getPostdomForSubpFlow()
|
java.util.List |
getPostdominatedChildrenForSubpFlow()
getPostDominatedChildren: setPostDominatedChildren: Get/set the list of basic blocks post dominated by this block. |
DefVector |
getPReach()
getReach0: Get bit vector showing Reach0 set of this block. |
Edge |
getPredEdge(BBlock pFromBBlock)
getPredEdge: getSuccEdge: Get the edge corresponding to the predecessor/successor to/from this basic block. |
java.util.List |
getPredList()
getPredList: getSuccList: Get the predecessor/successor list of this basic block. |
FlowAnalSymVector |
getPUsed()
getUsed: //##12 Get bit vector showing Used set of this block. |
DefVector |
getReach()
getReach: Get bit vector showing Reach set of this block. |
SetRefReprList |
getSetRefReprs()
Gets the SetRefReprList object that is the list of SetRefRepr objects, each of which wrap a statement/instruction. |
java.util.List |
getStrictDomForSubpFlow()
Get the strict dominator for this BBlock in the SubpFlow this BBlock belongs to. |
java.util.List |
getStrictPostdomForSubpFlow()
|
SubpFlow |
getSubpFlow()
Returns the SubpFlow object this BBlock belongs to. |
Edge |
getSuccEdge(BBlock pToBBlock)
|
java.util.List |
getSuccList()
|
java.lang.Object |
getWork()
getWork: setWork: get/set information privately used in each phase. |
protected void |
initiateFields()
|
BBlock |
insertConditionalInitPart()
insertConditionalInitPart: Insert a basic block as the conditional initiation block (conditionalInitBlock) of this loop (the loop starting with this basic block having loop header flag). |
BBlock |
insertLoopPreheader()
|
boolean |
isDAvailIn(FlowExpId pExpId)
isAvailIn: See if the expression represented by pExpId is available (value is always computed) at entry to this block. |
boolean |
isDAvailOut(FlowExpId pExpId)
isAvailOut: See if the expression represented by pExpId is available (value is always computed) at exit from this block. |
boolean |
isDDef(SetRefRepr pSetRefRepr)
isDef: See if definition at position pPos is done in this block. |
boolean |
isDDefIn(Sym pSym)
isDefIn: See if pSym is always defined at entry to this block whichever path may be take. |
boolean |
isDDefined(Sym pSym)
isDefined: See if the value of pSym is defined in this block. |
boolean |
isDDefOut(Sym pSym)
isDefOut: See if pSym is always defined at exit from this block. |
boolean |
isDEGen(FlowExpId 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 |
isDExposed(Sym pSym)
isExposed: See if the variable of pSym is used in this block without setting its value in this block. |
boolean |
isDKill(SetRefRepr pSetRefRepr)
isKill: See if definition at position pPos is killed in this block. |
boolean |
isDUsed(Sym pSym)
isUsed: //##12 See if the value of pSym is used in this block. |
boolean |
isEntryBBlock()
isEntryBlock: See if this block is the entry block in the graph of basic blocks. |
boolean |
isEntryBlock()
|
boolean |
isExitBBlock()
isExitBlock: See if this block is the exit 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 |
isPDef(SetRefRepr pSetRefRepr)
|
boolean |
isPDefined(Sym pSym)
isModified: See if the value of pSym is modified in this block. |
boolean |
isPEKill(FlowExpId pExpId)
isEKill: See if expression designated by pReg is killed (its operand is defined) in this block. |
boolean |
isPExposed(Sym pSym)
|
boolean |
isPKill(SetRefRepr pSetRefRepr)
|
boolean |
isPLiveIn(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 |
isPLiveOut(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 |
isPReach(SetRefRepr pSetRefRepr)
isReach: See if definition at position pPos reaches to the entry point of this block. |
boolean |
isPUsed(Sym pSym)
|
void |
printSubtrees()
printSubtrees: Print the sequence of subtrees contained in this block. |
FlowResults |
results()
Returns the FlowResults object that holds data flow information. |
void |
setDAvailIn(ExpVector pVect)
|
void |
setDAvailOut(ExpVector pVect)
|
void |
setDDef(DefVector pVect)
|
void |
setDDefIn(FlowAnalSymVector pVect)
|
void |
setDDefined(FlowAnalSymVector pVect)
|
void |
setDDefOut(FlowAnalSymVector pVect)
|
void |
setDef(DefVector pVect)
|
void |
setDEGen(ExpVector pVect)
|
void |
setDExposed(FlowAnalSymVector pVect)
|
void |
setDKill(DefVector pVect)
|
void |
setDomForSubpFlow(java.util.List pDom)
Set the list of BBlocks that dominate this BBlock in the SubpFlow this BBlock belongs to. |
void |
setDominatedChildrenForSubpFlow(java.util.List pDominatedChildren)
|
void |
setDReach(DefVector pVect)
|
void |
setDUsed(FlowAnalSymVector pVect)
|
void |
setImmediateDominatorForSubpFlow(BBlock pDominator)
|
void |
setImmediatePostdominatorForSubpFlow(BBlock pPostDominator)
|
void |
setNextInDFO(BBlock pNext)
|
void |
setNextInInveseDFO(BBlock pNext)
|
void |
setPDef(DefVector pVect)
|
void |
setPDefined(FlowAnalSymVector pVect)
|
void |
setPEKill(ExpVector pVect)
|
void |
setPExposed(FlowAnalSymVector pVect)
|
void |
setPKill(DefVector pVect)
|
void |
setPLiveIn(FlowAnalSymVector pVect)
|
void |
setPLiveOut(FlowAnalSymVector pVect)
|
void |
setPostdomForSubpFlow(java.util.List pPostdom)
|
void |
setPostdominatedChildrenForSubpFlow(java.util.List pPostDominatedChildren)
|
void |
setPReach(DefVector pVect)
|
void |
setPUsed(FlowAnalSymVector pVect)
|
void |
setReach(DefVector pVect)
|
void |
setSetRefReprs(SetRefReprList pSetRefReprs)
Sets the SetRefReprList object that is the list of SetRefRepr objects, each of which wrap a statement/instruction. |
void |
setWork(java.lang.Object pWork)
|
java.lang.String |
toString()
|
java.lang.String |
toStringDetail()
toStringDetail: //##10 |
java.lang.String |
toStringShort()
toStringShort: //##10 |
java.lang.String |
toStringVeryShort()
|
| クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| インタフェース coins.aflow.BBlock から継承したメソッド |
bblockNodeIterator, bblockSubtreeIterator, getLabel, setIrLink, setRefRepr |
| フィールドの詳細 |
public final FlowRoot flowRoot
protected final 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 fNextInDFO
protected BBlock fNextInInverseDFO
protected java.lang.Object fWork
final FlowResults fResults
| コンストラクタの詳細 |
protected BBlockImpl(SubpFlow pSubpFlow)
| メソッドの詳細 |
protected void initiateFields()
public IR getIrLink()
BBlock の記述:
BBlock 内の getIrLinkpublic int getBBlockNumber()
BBlock の記述:
BBlock 内の getBBlockNumberpublic FlowResults results()
BBlock の記述: FlowResults object that holds data flow information.
BBlock 内の resultspublic SetRefReprList getSetRefReprs()
BBlock の記述: SetRefReprList object that is the list of SetRefRepr objects, each of which wrap a statement/instruction.
BBlock 内の getSetRefReprspublic void setSetRefReprs(SetRefReprList pSetRefReprs)
BBlock の記述: SetRefReprList object that is the list of SetRefRepr objects, each of which wrap a statement/instruction.
BBlock 内の setSetRefReprspublic java.util.List getPredList()
BBlock の記述:
BBlock 内の getPredListpublic java.util.List getSuccList()
BBlock 内の getSuccListpublic Edge getPredEdge(BBlock pFromBBlock)
BBlock の記述:
BBlock 内の getPredEdgepublic Edge getSuccEdge(BBlock pToBBlock)
BBlock 内の getSuccEdgepublic boolean isEntryBlock()
public boolean isEntryBBlock()
BBlock の記述:
BBlock 内の isEntryBBlockpublic boolean isExitBlock()
public boolean isExitBBlock()
BBlock の記述:
BBlock 内の isExitBBlockpublic java.util.List getDomForSubpFlow()
BBlock の記述: BBlocks that dominate this BBlock in the SubpFlow this BBlock belongs to.
BBlock 内の getDomForSubpFlowpublic void setDomForSubpFlow(java.util.List pDom)
BBlock の記述: BBlocks that dominate this BBlock in the SubpFlow this BBlock belongs to.
BBlock 内の setDomForSubpFlowpublic java.util.List getStrictDomForSubpFlow()
BBlock の記述: BBlock in the SubpFlow this BBlock belongs to. A strict dominator is the dominator list minus the BBlock itself.
BBlock 内の getStrictDomForSubpFlowpublic BBlock getImmediateDominatorForSubpFlow()
BBlock 内の getImmediateDominatorForSubpFlowpublic void setImmediateDominatorForSubpFlow(BBlock pDominator)
BBlock 内の setImmediateDominatorForSubpFlowpublic java.util.List getDominatedChildrenForSubpFlow()
BBlock 内の getDominatedChildrenForSubpFlowpublic void setDominatedChildrenForSubpFlow(java.util.List pDominatedChildren)
BBlock 内の setDominatedChildrenForSubpFlowpublic java.util.List getPostdomForSubpFlow()
BBlock 内の getPostdomForSubpFlowpublic void setPostdomForSubpFlow(java.util.List pPostdom)
BBlock 内の setPostdomForSubpFlowpublic java.util.List getStrictPostdomForSubpFlow()
BBlock 内の getStrictPostdomForSubpFlowpublic BBlock getImmediatePostdominatorForSubpFlow()
BBlock 内の getImmediatePostdominatorForSubpFlowpublic void setImmediatePostdominatorForSubpFlow(BBlock pPostDominator)
BBlock 内の setImmediatePostdominatorForSubpFlowpublic java.util.List getPostdominatedChildrenForSubpFlow()
BBlock の記述:
BBlock 内の getPostdominatedChildrenForSubpFlowpublic void setPostdominatedChildrenForSubpFlow(java.util.List pPostDominatedChildren)
BBlock 内の setPostdominatedChildrenForSubpFlowpublic BBlock getNextInDFO()
public void setNextInDFO(BBlock pNext)
public BBlock getNextInInverseDFO()
public void setNextInInveseDFO(BBlock pNext)
public java.lang.Object getWork()
BBlock の記述:
BBlock 内の getWorkpublic void setWork(java.lang.Object pWork)
BBlock 内の setWorkpublic java.lang.String toStringShort()
BBlock の記述:
BBlock 内の toStringShortpublic java.lang.String toStringDetail()
BBlock の記述:
BBlock 内の toStringDetailpublic void printSubtrees()
public BBlock insertLoopPreheader()
public BBlock insertConditionalInitPart()
throws CompileError
CompileError
public void changeSuccEdge(BBlock pBefore,
BBlock pAfter)
BBlock の記述:
BBlock 内の changeSuccEdge
public void changePredEdge(BBlock pBefore,
BBlock pAfter)
BBlock 内の changePredEdge
public void addEdge(Exp pConditionalExp,
BBlock pToBlock)
BBlock 内の addEdgepublic void deleteEdge(BBlock pToBlock)
BBlock 内の deleteEdgepublic void deleteBBlock()
BBlock 内の deleteBBlockpublic void addToPredList(BBlock pPred)
BBlock 内の addToPredListpublic void addToSuccList(BBlock pSucc)
BBlock 内の addToSuccListpublic void deleteFromPredList(BBlock pPred)
BBlock 内の deleteFromPredListpublic void deleteFromSuccList(BBlock pSucc)
BBlock 内の deleteFromSuccListpublic void deleteFromSuccList0(BBlock pSucc)
public void fuseSuccessor(BBlock pToBlock)
BBlockImpl)'s implementation changes only the predecessor/successor relations.
BBlock 内の fuseSuccessorpublic SubpFlow getSubpFlow()
BBlock の記述: SubpFlow object this BBlock belongs to.
BBlock 内の getSubpFlowpublic java.lang.String toString()
java.lang.Object 内の toStringpublic java.lang.String toStringVeryShort()
public DefVector getDef()
public void setDef(DefVector pVect)
public DefVector getDDef()
public void setDDef(DefVector pVect)
public DefVector getPDef()
BBlock の記述:
BBlock 内の getPDefpublic void setPDef(DefVector pVect)
BBlock 内の setPDefpublic DefVector getDKill()
BBlock 内の getDKillpublic void setDKill(DefVector pVect)
BBlock 内の setDKillpublic DefVector getPKill()
BBlock 内の getPKillpublic void setPKill(DefVector pVect)
BBlock 内の setPKillpublic DefVector getReach()
public void setReach(DefVector pVect)
public DefVector getPReach()
BBlock 内の getPReachpublic void setPReach(DefVector pVect)
BBlock 内の setPReachpublic void setDReach(DefVector pVect)
public FlowAnalSymVector getDDefined()
BBlock 内の getDDefinedpublic void setDDefined(FlowAnalSymVector pVect)
BBlock 内の setDDefinedpublic FlowAnalSymVector getPDefined()
BBlock の記述: FlowAnalSyms whose value may have changed in this BBlock..
BBlock 内の getPDefinedpublic void setPDefined(FlowAnalSymVector pVect)
BBlock 内の setPDefinedpublic FlowAnalSymVector getPUsed()
BBlock 内の getPUsedpublic void setPUsed(FlowAnalSymVector pVect)
BBlock 内の setPUsedpublic FlowAnalSymVector getDExposed()
BBlock 内の getDExposedpublic void setDExposed(FlowAnalSymVector pVect)
BBlock 内の setDExposedpublic FlowAnalSymVector getPExposed()
BBlock 内の getPExposedpublic void setPExposed(FlowAnalSymVector pVect)
BBlock 内の setPExposedpublic ExpVector getDEGen()
BBlock 内の getDEGenpublic void setDEGen(ExpVector pVect)
BBlock 内の setDEGenpublic ExpVector getPEKill()
BBlock 内の getPEKillpublic void setPEKill(ExpVector pVect)
BBlock 内の setPEKillpublic ExpVector getDAvailIn()
BBlock 内の getDAvailInpublic void setDAvailIn(ExpVector pVect)
BBlock 内の setDAvailInpublic ExpVector getDAvailOut()
BBlock 内の getDAvailOutpublic void setDAvailOut(ExpVector pVect)
BBlock 内の setDAvailOutpublic FlowAnalSymVector getPLiveIn()
BBlock 内の getPLiveInpublic void setPLiveIn(FlowAnalSymVector pVect)
BBlock 内の setPLiveInpublic FlowAnalSymVector getPLiveOut()
BBlock 内の getPLiveOutpublic void setPLiveOut(FlowAnalSymVector pVect)
BBlock 内の setPLiveOutpublic FlowAnalSymVector getDDefIn()
BBlock 内の getDDefInpublic void setDDefIn(FlowAnalSymVector pVect)
BBlock 内の setDDefInpublic FlowAnalSymVector getDDefOut()
BBlock 内の getDDefOutpublic void setDDefOut(FlowAnalSymVector pVect)
BBlock 内の setDDefOutpublic boolean isDDef(SetRefRepr pSetRefRepr)
BBlock の記述:
BBlock 内の isDDefpublic boolean isPDef(SetRefRepr pSetRefRepr)
BBlock 内の isPDefpublic boolean isDKill(SetRefRepr pSetRefRepr)
BBlock の記述:
BBlock 内の isDKillpublic boolean isPKill(SetRefRepr pSetRefRepr)
BBlock 内の isPKillpublic boolean isPReach(SetRefRepr pSetRefRepr)
BBlock 内の isPReachpublic boolean isDDefined(Sym pSym)
BBlock の記述:
BBlock 内の isDDefinedpublic boolean isPDefined(Sym pSym)
BBlock の記述:
BBlock 内の isPDefinedpublic boolean isDUsed(Sym pSym)
BBlock の記述:
BBlock 内の isDUsedpublic boolean isPUsed(Sym pSym)
BBlock 内の isPUsedpublic boolean isDExposed(Sym pSym)
BBlock の記述:
BBlock 内の isDExposedpublic boolean isPExposed(Sym pSym)
BBlock 内の isPExposedpublic boolean isDEGen(FlowExpId pExpId)
BBlock の記述:
BBlock 内の isDEGenpublic boolean isPEKill(FlowExpId pExpId)
BBlock の記述:
BBlock 内の isPEKillpublic boolean isDAvailIn(FlowExpId pExpId)
BBlock の記述:
BBlock 内の isDAvailInpublic boolean isDAvailOut(FlowExpId pExpId)
BBlock の記述:
BBlock 内の isDAvailOutpublic boolean isPLiveIn(Sym pSym)
BBlock の記述:
BBlock 内の isPLiveInpublic boolean isPLiveOut(Sym pSym)
BBlock の記述:
BBlock 内の isPLiveOutpublic boolean isDDefIn(Sym pSym)
BBlock の記述:
BBlock 内の isDDefInpublic boolean isDDefOut(Sym pSym)
BBlock の記述:
BBlock 内の isDDefOutpublic FlowAnalSymVector getDUsed()
BBlock の記述: SetRefReprs (specified by SetRefRepr#getUseSyms()).
BBlock 内の getDUsedpublic void setDUsed(FlowAnalSymVector pVect)
BBlock 内の setDUsed
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||