public class CFG extends Object
Modifier and Type | Class and Description |
---|---|
static class |
CFG.EdgeType |
public CFG(IRScope scope)
public int getNextBBID()
public int getMaxNodeID()
public boolean bbIsProtected(BasicBlock b)
public BasicBlock getBBForLabel(Label label)
public BasicBlock getEnsurerBBFor(BasicBlock block)
public BasicBlock getEntryBB()
public BasicBlock getExitBB()
public BasicBlock getGlobalEnsureBB()
public List<ExceptionRegion> getOutermostExceptionRegions()
public LinkedList<BasicBlock> postOrderList()
public ListIterator<BasicBlock> getPostOrderTraverser()
public ListIterator<BasicBlock> getReversePostOrderTraverser()
public void resetState()
public IRScope getScope()
public int size()
public Collection<BasicBlock> getBasicBlocks()
public Collection<BasicBlock> getSortedBasicBlocks()
public void addEdge(BasicBlock source, BasicBlock destination, Object type)
public int inDegree(BasicBlock b)
public int outDegree(BasicBlock b)
public Iterable<BasicBlock> getIncomingSources(BasicBlock block)
public Iterable<Edge<BasicBlock>> getIncomingEdges(BasicBlock block)
public BasicBlock getIncomingSource(BasicBlock block)
public BasicBlock getIncomingSourceOfType(BasicBlock block, Object type)
public Edge<BasicBlock> getIncomingEdgeOfType(BasicBlock block, Object type)
public Edge<BasicBlock> getOutgoingEdgeOfType(BasicBlock block, Object type)
public BasicBlock getOutgoingDestination(BasicBlock block)
public BasicBlock getOutgoingDestinationOfType(BasicBlock block, Object type)
public Iterable<BasicBlock> getOutgoingDestinations(BasicBlock block)
public Iterable<BasicBlock> getOutgoingDestinationsOfType(BasicBlock block, Object type)
public Iterable<BasicBlock> getOutgoingDestinationsNotOfType(BasicBlock block, Object type)
public Set<Edge<BasicBlock>> getOutgoingEdges(BasicBlock block)
public Iterable<Edge<BasicBlock>> getOutgoingEdgesNotOfType(BasicBlock block, Object type)
public BasicBlock getRescuerBBFor(BasicBlock block)
public void addGlobalEnsureBB(BasicBlock geb)
public void setEnsurerBB(BasicBlock block, BasicBlock ensureBlock)
public void setRescuerBB(BasicBlock block, BasicBlock rescuerBlock)
public DirectedGraph<BasicBlock> build(List<Instr> instrs)
public void addBasicBlock(BasicBlock bb)
public void removeEdge(Edge edge)
public void removeAllOutgoingEdgesForBB(BasicBlock b)
public void removeBB(BasicBlock b)
public void collapseStraightLineBBs()
public String toStringGraph()
public String toStringInstrs()
public void removeEdge(BasicBlock a, BasicBlock b)
public CFG cloneForCloningClosure(IRScope scope, InlinerInfo ii)
Copyright © 2001-2016 JRuby. All Rights Reserved.