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 IRManager getManager()
public int getMaxNodeID()
public boolean bbIsProtected(BasicBlock b)
public BasicBlock getBBForLabel(Label label)
public BasicBlock getEntryBB()
public BasicBlock getExitBB()
public BasicBlock getGlobalEnsureBB()
public java.util.LinkedList<BasicBlock> postOrderList()
public java.util.Iterator<BasicBlock> getPostOrderTraverser()
public java.util.Iterator<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<org.jruby.dirgra.Edge<BasicBlock>> getIncomingEdges(BasicBlock block)
public BasicBlock getIncomingSourceOfType(BasicBlock block, java.lang.Object type)
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.Collection<org.jruby.dirgra.Edge<BasicBlock>> getOutgoingEdges(BasicBlock block)
public BasicBlock getRescuerBBFor(BasicBlock block)
public void addGlobalEnsureBB(BasicBlock geb)
public void setRescuerBB(BasicBlock block, BasicBlock rescuerBlock)
public org.jruby.dirgra.DirectedGraph<BasicBlock> build(Instr[] instrs)
public void addBasicBlock(BasicBlock bb)
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)
Copyright © 2001-2018 JRuby. All Rights Reserved.