coins.aflow
クラス BBlockHirImpl
java.lang.Object
|
+--coins.aflow.BBlockImpl
|
+--coins.aflow.BBlockHirImpl
- すべての実装インタフェース:
- BBlock, BBlockHir
- public class BBlockHirImpl
- extends BBlockImpl
- implements BBlockHir
BBlockHirImpl:
Implements BBlock methods applicalble for HIR.
フィールドの概要 |
protected java.util.Map |
fExpNodeListMap
fExpNodeListMap: //##25
key: ExpId, value: list of Ext nodes other than assignment. |
クラス coins.aflow.BBlockImpl から継承したフィールド |
fBBlockNumber, fIrLink, flowRoot, fNextInDFO, fNextInInverseDFO, fPredEdgeList, fPredList, fResults, fSuccEdgeList, fSuccList, fWork |
メソッドの概要 |
void |
addEdge(Exp pConditionalExp,
BBlock pToBlock)
addEdge:
Add edge from this block to pToBlock that is to be taken
when pConditionalExp is true.
|
void |
addSwitchCase(Const pConst,
Stmt pLabeledStmt)
addSwitchCase:
Add case selection part of switch statement contained in this
block and adjust linkages between basic blocks
(to change multiway jumps in HIR).
|
void |
addToExpNodeList(ExpId pExpId,
HIR pExpNode)
addToExpNodeList: //##25
Add pExpNode to the list corresponding to pExpId to show
that the expression for pExpId is computed at pExpNode. |
BBlockNodeIterator |
bblockNodeIterator()
|
BBlockSubtreeIterator |
bblockSubtreeIterator()
bblockSubtreeIterator:
Create an iterator to traverse all top-subtree in this basic block.
|
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 |
deleteSwitchCase(Const pConst)
deleteSwitchCase: (##4)
Delete a case selection constant of switch statement contained
in this block. |
void |
fuseSuccessor(BBlock pToBlock)
fuseSuccessor:
Fuse the successor pToBlock with this block and make
all successors of pToBlock as successors of this block.
|
java.util.List |
getExpNodeList(ExpId pExpId)
|
Stmt |
getFirstStmt()
|
Label |
getLabel()
getLabel:
Get a label attached to the first top-subtree of this basic block. |
Stmt |
getLastStmt()
|
void |
printSubtrees()
printSubtrees:
Print the sequence of subtrees contained in this block.
|
void |
setIrLink(IR pIR)
Sets the LabeledStmt and Label associated with this BBlock . |
SetRefRepr |
setRefRepr(IR pIR)
Returns the SetRefRepr object enclosing the given IR. |
BBlock |
splitTailPart(Stmt pStmt)
|
クラス coins.aflow.BBlockImpl から継承したメソッド |
addToPredList, addToSuccList, changePredEdge, changeSuccEdge, deleteFromPredList, deleteFromSuccList, deleteFromSuccList0, getBBlockNumber, getDAvailIn, getDAvailOut, getDDef, getDDefIn, getDDefined, getDDefOut, getDef, getDEGen, getDExposed, getDKill, getDomForSubpFlow, getDominatedChildrenForSubpFlow, getDUsed, getImmediateDominatorForSubpFlow, getImmediatePostdominatorForSubpFlow, getIrLink, getNextInDFO, getNextInInverseDFO, getPDef, getPDefined, getPEKill, getPExposed, getPKill, getPLiveIn, getPLiveOut, getPostdomForSubpFlow, getPostdominatedChildrenForSubpFlow, getPReach, getPredEdge, getPredList, getPUsed, getReach, getSetRefReprs, getStrictDomForSubpFlow, getStrictPostdomForSubpFlow, getSubpFlow, getSuccEdge, getSuccList, getWork, initiateFields, insertConditionalInitPart, insertLoopPreheader, isDAvailIn, isDAvailOut, isDDef, isDDefIn, isDDefined, isDDefOut, isDEGen, isDExposed, isDKill, isDUsed, isEntryBBlock, isEntryBlock, isExitBBlock, isExitBlock, isPDef, isPDefined, isPEKill, isPExposed, isPKill, isPLiveIn, isPLiveOut, isPReach, isPUsed, results, setDAvailIn, setDAvailOut, setDDef, setDDefIn, setDDefined, setDDefOut, setDef, setDEGen, setDExposed, setDKill, setDomForSubpFlow, setDominatedChildrenForSubpFlow, setDReach, setDUsed, setImmediateDominatorForSubpFlow, setImmediatePostdominatorForSubpFlow, setNextInDFO, setNextInInveseDFO, setPDef, setPDefined, setPEKill, setPExposed, setPKill, setPLiveIn, setPLiveOut, setPostdomForSubpFlow, setPostdominatedChildrenForSubpFlow, setPReach, setPUsed, setReach, setSetRefReprs, setWork, toString, toStringDetail, toStringShort, toStringVeryShort |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
インタフェース coins.aflow.BBlock から継承したメソッド |
addToPredList, addToSuccList, changePredEdge, changeSuccEdge, deleteFromPredList, deleteFromSuccList, getBBlockNumber, getDAvailIn, getDAvailOut, getDDefIn, getDDefined, getDDefOut, getDEGen, getDExposed, getDKill, getDomForSubpFlow, getDominatedChildrenForSubpFlow, getDUsed, getImmediateDominatorForSubpFlow, getImmediatePostdominatorForSubpFlow, getIrLink, getPDef, getPDefined, getPEKill, getPExposed, getPKill, getPLiveIn, getPLiveOut, getPostdomForSubpFlow, getPostdominatedChildrenForSubpFlow, getPReach, getPredEdge, getPredList, getPUsed, getSetRefReprs, getStrictDomForSubpFlow, getStrictPostdomForSubpFlow, getSubpFlow, getSuccEdge, getSuccList, getWork, isDAvailIn, isDAvailOut, isDDef, isDDefIn, isDDefined, isDDefOut, isDEGen, isDExposed, isDKill, isDUsed, isEntryBBlock, isExitBBlock, isPDef, isPDefined, isPEKill, isPExposed, isPKill, isPLiveIn, isPLiveOut, isPReach, isPUsed, results, setDAvailIn, setDAvailOut, setDDefIn, setDDefined, setDDefOut, setDEGen, setDExposed, setDKill, setDomForSubpFlow, setDominatedChildrenForSubpFlow, setDUsed, setImmediateDominatorForSubpFlow, setImmediatePostdominatorForSubpFlow, setPDef, setPDefined, setPEKill, setPExposed, setPKill, setPLiveIn, setPLiveOut, setPostdomForSubpFlow, setPostdominatedChildrenForSubpFlow, setPReach, setPUsed, setSetRefReprs, setWork, toStringDetail, toStringShort |
fExpNodeListMap
protected java.util.Map fExpNodeListMap
- fExpNodeListMap: //##25
key: ExpId, value: list of Ext nodes other than assignment.
BBlockHirImpl
protected BBlockHirImpl(LabeledStmt pLabeledStmt,
SubpFlow pSubpFlow)
setIrLink
public void setIrLink(IR pIR)
- Sets the
LabeledStmt
and Label
associated with this BBlock
.
- 定義:
- インタフェース
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.
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.
Using
SetRefReprIterator
is the preferred method of iterating subtrees.
See SetRefReprIterator
- 定義:
- インタフェース
BBlock
内の bblockSubtreeIterator
- 戻り値:
- the BBlockSubtree iterator for this BBlock.
bblockNodeIterator
public BBlockNodeIterator bblockNodeIterator()
- 定義:
- インタフェース
BBlock
内の bblockNodeIterator
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.
- オーバーライド:
- クラス
BBlockImpl
内の printSubtrees
splitTailPart
public BBlock splitTailPart(Stmt pStmt)
addSwitchCase
public void addSwitchCase(Const pConst,
Stmt pLabeledStmt)
- addSwitchCase:
Add case selection part of switch statement contained in this
block and adjust linkages between basic blocks
(to change multiway jumps in HIR).
If basic blocks corresponding to pLabeledStmt of the case
selection part is not yet constructed, then they should be
constructed by divideIntoBBlocks before calling
addSwitchCase. (##4)
- 定義:
- インタフェース
BBlockHir
内の addSwitchCase
deleteSwitchCase
public void deleteSwitchCase(Const pConst)
- deleteSwitchCase: (##4)
Delete a case selection constant of switch statement contained
in this block. If all constants of a case selection statement
are deleted, then the case selection statement itself is also
deleted and linkages between basic blocks are adjusted
(to change multiway jumps in HIR).
- 定義:
- インタフェース
BBlockHir
内の deleteSwitchCase
addEdge
public void addEdge(Exp pConditionalExp,
BBlock pToBlock)
- インタフェース
BBlock
の記述:
- addEdge:
Add edge from this block to pToBlock that is to be taken
when pConditionalExp is true.
Branch addresses of this block and linkages between successors
of this block are changed so that consistency is kept.
"this" is a basic block having only one successor.
- 定義:
- インタフェース
BBlock
内の addEdge
- オーバーライド:
- クラス
BBlockImpl
内の addEdge
deleteEdge
public void deleteEdge(BBlock pToBlock)
- deleteEdge:
Delete the edge from this block to pToBlock and adjust
related addresses and links so as to keep consistency.
If pToBlock has this block as its only one predecessor,
then pToBlock is deleted.
- 定義:
- インタフェース
BBlock
内の deleteEdge
- オーバーライド:
- クラス
BBlockImpl
内の deleteEdge
deleteBBlock
public void deleteBBlock()
- deleteBBlock:
Delete this block and add successors of this block to the set of
successors of all predecessors of this block. Branch statement
or instructions in this block is moved to all predecessors of
this block so as to keep consistency.
"this" is a basic block whose predecessors have this block
as their only one successor. If the successors have more than
one successors, they should be modified before invoking
this method.
- 定義:
- インタフェース
BBlock
内の deleteBBlock
- オーバーライド:
- クラス
BBlockImpl
内の deleteBBlock
fuseSuccessor
public void fuseSuccessor(BBlock pToBlock)
- fuseSuccessor:
Fuse the successor pToBlock with this block and make
all successors of pToBlock as successors of this block.
"this" is a basic block having pToBlock as its only one successor,
and pToBlock should have "this" as its only one predecessor.
Before invoking this method, this block should be changed
to have only one successor pToBlock if the condition is
not satisfied.
Branch addresses of this block and linkages between successors
of pToBlock are changed so that consistency is kept.
- 定義:
- インタフェース
BBlock
内の fuseSuccessor
- オーバーライド:
- クラス
BBlockImpl
内の fuseSuccessor
setRefRepr
public SetRefRepr setRefRepr(IR pIR)
- Returns the
SetRefRepr
object enclosing the given IR.
- 定義:
- インタフェース
BBlock
内の setRefRepr
addToExpNodeList
public void addToExpNodeList(ExpId pExpId,
HIR pExpNode)
- addToExpNodeList: //##25
Add pExpNode to the list corresponding to pExpId to show
that the expression for pExpId is computed at pExpNode.
getExpNodeList
public java.util.List getExpNodeList(ExpId pExpId)
getFirstStmt
public Stmt getFirstStmt()
- 定義:
- インタフェース
BBlockHir
内の getFirstStmt
getLastStmt
public Stmt getLastStmt()
- 定義:
- インタフェース
BBlockHir
内の getLastStmt