|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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 BBlock s 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 BBlock s 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
内の getIrLink
public int getBBlockNumber()
BBlock
の記述:
BBlock
内の getBBlockNumber
public FlowResults results()
BBlock
の記述: FlowResults
object that holds data flow information.
BBlock
内の results
public SetRefReprList getSetRefReprs()
BBlock
の記述: SetRefReprList
object that is the list of SetRefRepr
objects, each of which wrap a statement/instruction.
BBlock
内の getSetRefReprs
public void setSetRefReprs(SetRefReprList pSetRefReprs)
BBlock
の記述: SetRefReprList
object that is the list of SetRefRepr
objects, each of which wrap a statement/instruction.
BBlock
内の setSetRefReprs
public java.util.List getPredList()
BBlock
の記述:
BBlock
内の getPredList
public java.util.List getSuccList()
BBlock
内の getSuccList
public Edge getPredEdge(BBlock pFromBBlock)
BBlock
の記述:
BBlock
内の getPredEdge
public Edge getSuccEdge(BBlock pToBBlock)
BBlock
内の getSuccEdge
public boolean isEntryBlock()
public boolean isEntryBBlock()
BBlock
の記述:
BBlock
内の isEntryBBlock
public boolean isExitBlock()
public boolean isExitBBlock()
BBlock
の記述:
BBlock
内の isExitBBlock
public java.util.List getDomForSubpFlow()
BBlock
の記述: BBlock
s that dominate this BBlock
in the SubpFlow
this BBlock
belongs to.
BBlock
内の getDomForSubpFlow
public void setDomForSubpFlow(java.util.List pDom)
BBlock
の記述: BBlock
s that dominate this BBlock
in the SubpFlow
this BBlock
belongs to.
BBlock
内の setDomForSubpFlow
public 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
内の getStrictDomForSubpFlow
public BBlock getImmediateDominatorForSubpFlow()
BBlock
内の getImmediateDominatorForSubpFlow
public void setImmediateDominatorForSubpFlow(BBlock pDominator)
BBlock
内の setImmediateDominatorForSubpFlow
public java.util.List getDominatedChildrenForSubpFlow()
BBlock
内の getDominatedChildrenForSubpFlow
public void setDominatedChildrenForSubpFlow(java.util.List pDominatedChildren)
BBlock
内の setDominatedChildrenForSubpFlow
public java.util.List getPostdomForSubpFlow()
BBlock
内の getPostdomForSubpFlow
public void setPostdomForSubpFlow(java.util.List pPostdom)
BBlock
内の setPostdomForSubpFlow
public java.util.List getStrictPostdomForSubpFlow()
BBlock
内の getStrictPostdomForSubpFlow
public BBlock getImmediatePostdominatorForSubpFlow()
BBlock
内の getImmediatePostdominatorForSubpFlow
public void setImmediatePostdominatorForSubpFlow(BBlock pPostDominator)
BBlock
内の setImmediatePostdominatorForSubpFlow
public java.util.List getPostdominatedChildrenForSubpFlow()
BBlock
の記述:
BBlock
内の getPostdominatedChildrenForSubpFlow
public void setPostdominatedChildrenForSubpFlow(java.util.List pPostDominatedChildren)
BBlock
内の setPostdominatedChildrenForSubpFlow
public BBlock getNextInDFO()
public void setNextInDFO(BBlock pNext)
public BBlock getNextInInverseDFO()
public void setNextInInveseDFO(BBlock pNext)
public java.lang.Object getWork()
BBlock
の記述:
BBlock
内の getWork
public void setWork(java.lang.Object pWork)
BBlock
内の setWork
public java.lang.String toStringShort()
BBlock
の記述:
BBlock
内の toStringShort
public java.lang.String toStringDetail()
BBlock
の記述:
BBlock
内の toStringDetail
public 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
内の addEdge
public void deleteEdge(BBlock pToBlock)
BBlock
内の deleteEdge
public void deleteBBlock()
BBlock
内の deleteBBlock
public void addToPredList(BBlock pPred)
BBlock
内の addToPredList
public void addToSuccList(BBlock pSucc)
BBlock
内の addToSuccList
public void deleteFromPredList(BBlock pPred)
BBlock
内の deleteFromPredList
public void deleteFromSuccList(BBlock pSucc)
BBlock
内の deleteFromSuccList
public void deleteFromSuccList0(BBlock pSucc)
public void fuseSuccessor(BBlock pToBlock)
BBlockImpl
)'s implementation changes only the predecessor/successor relations.
BBlock
内の fuseSuccessor
public SubpFlow getSubpFlow()
BBlock
の記述: SubpFlow
object this BBlock
belongs to.
BBlock
内の getSubpFlow
public java.lang.String toString()
java.lang.Object
内の toString
public 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
内の getPDef
public void setPDef(DefVector pVect)
BBlock
内の setPDef
public DefVector getDKill()
BBlock
内の getDKill
public void setDKill(DefVector pVect)
BBlock
内の setDKill
public DefVector getPKill()
BBlock
内の getPKill
public void setPKill(DefVector pVect)
BBlock
内の setPKill
public DefVector getReach()
public void setReach(DefVector pVect)
public DefVector getPReach()
BBlock
内の getPReach
public void setPReach(DefVector pVect)
BBlock
内の setPReach
public void setDReach(DefVector pVect)
public FlowAnalSymVector getDDefined()
BBlock
内の getDDefined
public void setDDefined(FlowAnalSymVector pVect)
BBlock
内の setDDefined
public FlowAnalSymVector getPDefined()
BBlock
の記述: FlowAnalSym
s whose value may have changed in this BBlock
..
BBlock
内の getPDefined
public void setPDefined(FlowAnalSymVector pVect)
BBlock
内の setPDefined
public FlowAnalSymVector getPUsed()
BBlock
内の getPUsed
public void setPUsed(FlowAnalSymVector pVect)
BBlock
内の setPUsed
public FlowAnalSymVector getDExposed()
BBlock
内の getDExposed
public void setDExposed(FlowAnalSymVector pVect)
BBlock
内の setDExposed
public FlowAnalSymVector getPExposed()
BBlock
内の getPExposed
public void setPExposed(FlowAnalSymVector pVect)
BBlock
内の setPExposed
public ExpVector getDEGen()
BBlock
内の getDEGen
public void setDEGen(ExpVector pVect)
BBlock
内の setDEGen
public ExpVector getPEKill()
BBlock
内の getPEKill
public void setPEKill(ExpVector pVect)
BBlock
内の setPEKill
public ExpVector getDAvailIn()
BBlock
内の getDAvailIn
public void setDAvailIn(ExpVector pVect)
BBlock
内の setDAvailIn
public ExpVector getDAvailOut()
BBlock
内の getDAvailOut
public void setDAvailOut(ExpVector pVect)
BBlock
内の setDAvailOut
public FlowAnalSymVector getPLiveIn()
BBlock
内の getPLiveIn
public void setPLiveIn(FlowAnalSymVector pVect)
BBlock
内の setPLiveIn
public FlowAnalSymVector getPLiveOut()
BBlock
内の getPLiveOut
public void setPLiveOut(FlowAnalSymVector pVect)
BBlock
内の setPLiveOut
public FlowAnalSymVector getDDefIn()
BBlock
内の getDDefIn
public void setDDefIn(FlowAnalSymVector pVect)
BBlock
内の setDDefIn
public FlowAnalSymVector getDDefOut()
BBlock
内の getDDefOut
public void setDDefOut(FlowAnalSymVector pVect)
BBlock
内の setDDefOut
public boolean isDDef(SetRefRepr pSetRefRepr)
BBlock
の記述:
BBlock
内の isDDef
public boolean isPDef(SetRefRepr pSetRefRepr)
BBlock
内の isPDef
public boolean isDKill(SetRefRepr pSetRefRepr)
BBlock
の記述:
BBlock
内の isDKill
public boolean isPKill(SetRefRepr pSetRefRepr)
BBlock
内の isPKill
public boolean isPReach(SetRefRepr pSetRefRepr)
BBlock
内の isPReach
public boolean isDDefined(Sym pSym)
BBlock
の記述:
BBlock
内の isDDefined
public boolean isPDefined(Sym pSym)
BBlock
の記述:
BBlock
内の isPDefined
public boolean isDUsed(Sym pSym)
BBlock
の記述:
BBlock
内の isDUsed
public boolean isPUsed(Sym pSym)
BBlock
内の isPUsed
public boolean isDExposed(Sym pSym)
BBlock
の記述:
BBlock
内の isDExposed
public boolean isPExposed(Sym pSym)
BBlock
内の isPExposed
public boolean isDEGen(FlowExpId pExpId)
BBlock
の記述:
BBlock
内の isDEGen
public boolean isPEKill(FlowExpId pExpId)
BBlock
の記述:
BBlock
内の isPEKill
public boolean isDAvailIn(FlowExpId pExpId)
BBlock
の記述:
BBlock
内の isDAvailIn
public boolean isDAvailOut(FlowExpId pExpId)
BBlock
の記述:
BBlock
内の isDAvailOut
public boolean isPLiveIn(Sym pSym)
BBlock
の記述:
BBlock
内の isPLiveIn
public boolean isPLiveOut(Sym pSym)
BBlock
の記述:
BBlock
内の isPLiveOut
public boolean isDDefIn(Sym pSym)
BBlock
の記述:
BBlock
内の isDDefIn
public boolean isDDefOut(Sym pSym)
BBlock
の記述:
BBlock
内の isDDefOut
public FlowAnalSymVector getDUsed()
BBlock
の記述: SetRefRepr
s (specified by SetRefRepr#getUseSyms()).
BBlock
内の getDUsed
public void setDUsed(FlowAnalSymVector pVect)
BBlock
内の setDUsed
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |