public class ExplodedControlFlowGraph extends java.lang.Object implements ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>
Prototype: Not terribly efficient.
public static ExplodedControlFlowGraph make(IR ir)
public IExplodedBasicBlock entry()
MinimalCFGentry in interface MinimalCFG<IExplodedBasicBlock>public IExplodedBasicBlock exit()
exit in interface MinimalCFG<IExplodedBasicBlock>public IExplodedBasicBlock getBlockForInstruction(int index)
getBlockForInstruction in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>index - an instruction indexpublic com.ibm.wala.util.intset.BitVector getCatchBlocks()
getCatchBlocks in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public java.util.Collection<IExplodedBasicBlock> getExceptionalPredecessors(IExplodedBasicBlock bb)
MinimalCFGgetExceptionalPredecessors in interface MinimalCFG<IExplodedBasicBlock>public java.util.List<IExplodedBasicBlock> getExceptionalSuccessors(IExplodedBasicBlock bb)
MinimalCFGgetExceptionalSuccessors in interface MinimalCFG<IExplodedBasicBlock>public SSAInstruction[] getInstructions()
getInstructions in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public IMethod getMethod() throws com.ibm.wala.util.debug.UnimplementedError
getMethod in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>com.ibm.wala.util.debug.UnimplementedErrorpublic java.util.Collection<IExplodedBasicBlock> getNormalPredecessors(IExplodedBasicBlock bb)
MinimalCFGgetNormalPredecessors in interface MinimalCFG<IExplodedBasicBlock>public java.util.Collection<IExplodedBasicBlock> getNormalSuccessors(IExplodedBasicBlock bb)
MinimalCFGgetNormalSuccessors in interface MinimalCFG<IExplodedBasicBlock>public int getProgramCounter(int index)
throws com.ibm.wala.util.debug.UnimplementedError
ControlFlowGraphgetProgramCounter in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>index - an instruction indexcom.ibm.wala.util.debug.UnimplementedErrorpublic void removeNodeAndEdges(IExplodedBasicBlock N) throws java.lang.UnsupportedOperationException
removeNodeAndEdges in interface com.ibm.wala.util.graph.Graph<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic void addNode(IExplodedBasicBlock n) throws java.lang.UnsupportedOperationException
addNode in interface com.ibm.wala.util.graph.NodeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic boolean containsNode(IExplodedBasicBlock N)
containsNode in interface com.ibm.wala.util.graph.NodeManager<IExplodedBasicBlock>public int getNumberOfNodes()
getNumberOfNodes in interface com.ibm.wala.util.graph.NodeManager<IExplodedBasicBlock>public java.util.Iterator<IExplodedBasicBlock> iterator()
iterator in interface com.ibm.wala.util.graph.NodeManager<IExplodedBasicBlock>iterator in interface java.lang.Iterable<IExplodedBasicBlock>public java.util.stream.Stream<IExplodedBasicBlock> stream()
stream in interface com.ibm.wala.util.graph.NodeManager<IExplodedBasicBlock>public void removeNode(IExplodedBasicBlock n) throws java.lang.UnsupportedOperationException
removeNode in interface com.ibm.wala.util.graph.NodeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic void addEdge(IExplodedBasicBlock src, IExplodedBasicBlock dst) throws java.lang.UnsupportedOperationException
addEdge in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic int getPredNodeCount(IExplodedBasicBlock bb) throws java.lang.IllegalArgumentException
getPredNodeCount in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.IllegalArgumentExceptionpublic java.util.Iterator<IExplodedBasicBlock> getPredNodes(IExplodedBasicBlock bb) throws java.lang.IllegalArgumentException
getPredNodes in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.IllegalArgumentExceptionpublic int getSuccNodeCount(IExplodedBasicBlock N) throws com.ibm.wala.util.debug.UnimplementedError
getSuccNodeCount in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>com.ibm.wala.util.debug.UnimplementedErrorpublic java.util.Iterator<IExplodedBasicBlock> getSuccNodes(IExplodedBasicBlock bb)
getSuccNodes in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>public boolean hasEdge(IExplodedBasicBlock src, IExplodedBasicBlock dst) throws com.ibm.wala.util.debug.UnimplementedError
hasEdge in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>com.ibm.wala.util.debug.UnimplementedErrorpublic void removeAllIncidentEdges(IExplodedBasicBlock node) throws java.lang.UnsupportedOperationException
removeAllIncidentEdges in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic void removeEdge(IExplodedBasicBlock src, IExplodedBasicBlock dst) throws java.lang.UnsupportedOperationException
removeEdge in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic void removeIncomingEdges(IExplodedBasicBlock node) throws java.lang.UnsupportedOperationException
removeIncomingEdges in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic void removeOutgoingEdges(IExplodedBasicBlock node) throws java.lang.UnsupportedOperationException
removeOutgoingEdges in interface com.ibm.wala.util.graph.EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic int getMaxNumber()
getMaxNumber in interface com.ibm.wala.util.graph.NumberedNodeManager<IExplodedBasicBlock>public IExplodedBasicBlock getNode(int number)
getNode in interface com.ibm.wala.util.graph.NumberedNodeManager<IExplodedBasicBlock>public int getNumber(IExplodedBasicBlock n) throws java.lang.IllegalArgumentException
getNumber in interface com.ibm.wala.util.graph.NumberedNodeManager<IExplodedBasicBlock>java.lang.IllegalArgumentExceptionpublic java.util.Iterator<IExplodedBasicBlock> iterateNodes(com.ibm.wala.util.intset.IntSet s) throws com.ibm.wala.util.debug.UnimplementedError
iterateNodes in interface com.ibm.wala.util.graph.NumberedNodeManager<IExplodedBasicBlock>com.ibm.wala.util.debug.UnimplementedErrorpublic com.ibm.wala.util.intset.IntSet getPredNodeNumbers(IExplodedBasicBlock node)
getPredNodeNumbers in interface com.ibm.wala.util.graph.NumberedEdgeManager<IExplodedBasicBlock>public com.ibm.wala.util.intset.IntSet getSuccNodeNumbers(IExplodedBasicBlock node) throws com.ibm.wala.util.debug.UnimplementedError
getSuccNodeNumbers in interface com.ibm.wala.util.graph.NumberedEdgeManager<IExplodedBasicBlock>com.ibm.wala.util.debug.UnimplementedErrorpublic java.lang.String toString()
toString in class java.lang.Objectpublic IR getIR()