coins.aflow
インタフェース BBlockHir

すべてのスーパーインタフェース:
BBlock
既知の実装クラスの一覧:
BBlockHirImpl

public interface BBlockHir
extends BBlock

BBlockHir interface: //##11 Interface for HIR basic block.


メソッドの概要
 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 deleteSwitchCase(Const pConst)
          deleteSwitchCase: Delete a case selection constant of switch statement contained in this block.
 Stmt getFirstStmt()
           
 Stmt getLastStmt()
           
 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()
          insertLoopPreheader: Insert a basic block as the loop preheader of the loop starting with this basic block.
 
インタフェース coins.aflow.BBlock から継承したメソッド
addEdge, addToPredList, addToSuccList, bblockNodeIterator, bblockSubtreeIterator, changePredEdge, changeSuccEdge, deleteBBlock, deleteEdge, deleteFromPredList, deleteFromSuccList, fuseSuccessor, getBBlockNumber, getDAvailIn, getDAvailOut, getDDefIn, getDDefined, getDDefOut, getDEGen, getDExposed, getDKill, getDomForSubpFlow, getDominatedChildrenForSubpFlow, getDUsed, getImmediateDominatorForSubpFlow, getImmediatePostdominatorForSubpFlow, getIrLink, getLabel, 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, setIrLink, setPDef, setPDefined, setPEKill, setPExposed, setPKill, setPLiveIn, setPLiveOut, setPostdomForSubpFlow, setPostdominatedChildrenForSubpFlow, setPReach, setPUsed, setRefRepr, setSetRefReprs, setWork, toStringDetail, toStringShort
 

メソッドの詳細

insertLoopPreheader

public BBlock insertLoopPreheader()
insertLoopPreheader: Insert a basic block as the loop preheader of the loop starting with this basic block. The inserted loop preheader block has this block as its only one successor. Edges from predecessors of this block are changed to go to the inserted preheader except loop back edge. The loop back edge goes to this block as it is before the invocation of this method. Branch addresses of this block and its predecessors are changed so that consistency is kept. "this" should be a loop header basic block that dominates all basic blocks in the loop.

戻り値:
the inserted basic block.

insertConditionalInitPart

public BBlock insertConditionalInitPart()
                                 throws CompileError
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). The inserted conditionalInitBlock is preceeded by the expression statement built by copying the start condition of the loop so that the conditionalInitBlock is executed only when the start condition is satisfied. Edges from predecessors of this block are changed to go to the inserted start condition except loop back edge. The destination of the loop back edge is not changed. The conditionalInitBlock goes to loop body part of this loop treating the body part as its only one successor. Branch addresses of this block and its predecessors are changed so that consistency is kept. "this" should be a loop header basic block that dominates all basic blocks in the loop.

戻り値:
the inserted conditionalInitBlock.
CompileError

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 before calling addSwitchCase.


deleteSwitchCase

public void deleteSwitchCase(Const pConst)
deleteSwitchCase: 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).


getFirstStmt

public Stmt getFirstStmt()

getLastStmt

public Stmt getLastStmt()