public class CFG
extends java.lang.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 java.util.List<ExceptionRegion> getOutermostExceptionRegions()
public java.util.LinkedList<BasicBlock> postOrderList()
public java.util.ListIterator<BasicBlock> getPostOrderTraverser()
public java.util.ListIterator<BasicBlock> getReversePostOrderTraverser()
public void resetState()
public IRScope getScope()
public int size()
public java.util.Collection<BasicBlock> getBasicBlocks()
public java.util.Collection<BasicBlock> getSortedBasicBlocks()
public void addEdge(BasicBlock source, BasicBlock destination, java.lang.Object type)
public int inDegree(BasicBlock b)
public int outDegree(BasicBlock b)
public java.lang.Iterable<BasicBlock> getIncomingSources(BasicBlock block)
public java.lang.Iterable<Edge<BasicBlock>> getIncomingEdges(BasicBlock block)
public BasicBlock getIncomingSource(BasicBlock block)
public BasicBlock getIncomingSourceOfType(BasicBlock block, java.lang.Object type)
public Edge<BasicBlock> getIncomingEdgeOfType(BasicBlock block, java.lang.Object type)
public Edge<BasicBlock> getOutgoingEdgeOfType(BasicBlock block, java.lang.Object type)
public BasicBlock getOutgoingDestination(BasicBlock block)
public BasicBlock getOutgoingDestinationOfType(BasicBlock block, java.lang.Object type)
public java.lang.Iterable<BasicBlock> getOutgoingDestinations(BasicBlock block)
public java.lang.Iterable<BasicBlock> getOutgoingDestinationsOfType(BasicBlock block, java.lang.Object type)
public java.lang.Iterable<BasicBlock> getOutgoingDestinationsNotOfType(BasicBlock block, java.lang.Object type)
public java.util.Set<Edge<BasicBlock>> getOutgoingEdges(BasicBlock block)
public java.lang.Iterable<Edge<BasicBlock>> getOutgoingEdgesNotOfType(BasicBlock block, java.lang.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 exceptionBlock)
public DirectedGraph<BasicBlock> build(java.util.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 java.lang.String toStringGraph()
public java.lang.String toStringInstrs()
public void removeEdge(BasicBlock a, BasicBlock b)
public CFG cloneForCloningClosure(IRScope scope, InlinerInfo ii)
Copyright © 2002-2009 JRuby Team. All Rights Reserved.