public final class AstTranslator.IncipientCFG extends SparseNumberedGraph<AstTranslator.PreBasicBlock>
AstTranslator.AstCFG
Modifier and Type | Class and Description |
---|---|
protected class |
AstTranslator.IncipientCFG.Unwind |
Constructor and Description |
---|
IncipientCFG() |
Modifier and Type | Method and Description |
---|---|
void |
addEdge(AstTranslator.PreBasicBlock src,
AstTranslator.PreBasicBlock dst) |
void |
addInstruction(SSAInstruction n) |
void |
addPreEdge(AstTranslator.PreBasicBlock src,
CAstNode dst,
boolean exception)
if dst is associated with a basic block b, add an edge from src to b.
|
void |
addPreEdge(CAstNode src,
CAstNode dst,
boolean exception) |
void |
addPreEdgeToExit(AstTranslator.PreBasicBlock src,
boolean exception) |
void |
addPreEdgeToExit(CAstNode src,
boolean exception) |
void |
addPreNode(CAstNode n) |
void |
addPreNode(CAstNode n,
AstTranslator.UnwindState context)
associate n with the current block, and update the current unwind state
|
AstTranslator.PreBasicBlock |
getBlock(CAstNode n) |
AstTranslator.PreBasicBlock |
getCurrentBlock() |
int |
getCurrentInstruction() |
boolean |
isDeadBlock(AstTranslator.PreBasicBlock block) |
AstTranslator.PreBasicBlock |
newBlock(boolean fallThruFromPrior)
create a new basic block, and set it as the current block.
|
String |
toString() |
getEdgeManager, getNodeManager
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodes
addNode, containsNode, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
removeNodeAndEdges
addNode, containsNode, getNumberOfNodes, iterator, removeNode
forEach, spliterator
getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
public int getCurrentInstruction()
public AstTranslator.PreBasicBlock getCurrentBlock()
public AstTranslator.PreBasicBlock newBlock(boolean fallThruFromPrior)
fallThruFromPrior
- should a fall-through edge be added from the previous block
(value of currentBlock at entry)? if false, the newly created
block is marked as a dead block, as it has no incoming edges.public void addPreNode(CAstNode n)
public void addPreNode(CAstNode n, AstTranslator.UnwindState context)
public void addPreEdge(AstTranslator.PreBasicBlock src, CAstNode dst, boolean exception)
public void addPreEdgeToExit(CAstNode src, boolean exception)
public void addPreEdgeToExit(AstTranslator.PreBasicBlock src, boolean exception)
public void addEdge(AstTranslator.PreBasicBlock src, AstTranslator.PreBasicBlock dst)
addEdge
in interface EdgeManager<AstTranslator.PreBasicBlock>
addEdge
in class AbstractGraph<AstTranslator.PreBasicBlock>
public boolean isDeadBlock(AstTranslator.PreBasicBlock block)
public AstTranslator.PreBasicBlock getBlock(CAstNode n)
public void addInstruction(SSAInstruction n)
public String toString()
toString
in class AbstractGraph<AstTranslator.PreBasicBlock>