|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.ibm.wala.ssa.analysis.ExplodedControlFlowGraph
public class ExplodedControlFlowGraph
A view of a control flow graph where each basic block corresponds to exactly one SSA instruction index. Prototype: Not terribly efficient.
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Method Detail |
|---|
public static ExplodedControlFlowGraph make(IR ir)
public IExplodedBasicBlock entry()
ControlFlowGraph
entry in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public IExplodedBasicBlock exit()
exit in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public IExplodedBasicBlock getBlockForInstruction(int index)
getBlockForInstruction in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>index - an instruction index
public BitVector getCatchBlocks()
getCatchBlocks in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public java.util.Collection<IExplodedBasicBlock> getExceptionalPredecessors(IExplodedBasicBlock bb)
ControlFlowGraph
getExceptionalPredecessors in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public java.util.List<IExplodedBasicBlock> getExceptionalSuccessors(IExplodedBasicBlock bb)
ControlFlowGraph
getExceptionalSuccessors in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public SSAInstruction[] getInstructions()
getInstructions in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>
public IMethod getMethod()
throws UnimplementedError
getMethod in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>UnimplementedErrorpublic java.util.Collection<IExplodedBasicBlock> getNormalPredecessors(IExplodedBasicBlock bb)
ControlFlowGraph
getNormalPredecessors in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>public java.util.Collection<IExplodedBasicBlock> getNormalSuccessors(IExplodedBasicBlock bb)
ControlFlowGraph
getNormalSuccessors in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>
public int getProgramCounter(int index)
throws UnimplementedError
ControlFlowGraph
getProgramCounter in interface ControlFlowGraph<SSAInstruction,IExplodedBasicBlock>index - an instruction index
UnimplementedError
public void removeNodeAndEdges(IExplodedBasicBlock N)
throws java.lang.UnsupportedOperationException
Graph
removeNodeAndEdges in interface Graph<IExplodedBasicBlock>java.lang.UnsupportedOperationException - if the graph implementation does not allow removal
public void addNode(IExplodedBasicBlock n)
throws java.lang.UnsupportedOperationException
NodeManager
addNode in interface NodeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic boolean containsNode(IExplodedBasicBlock N)
containsNode in interface NodeManager<IExplodedBasicBlock>public int getNumberOfNodes()
getNumberOfNodes in interface NodeManager<IExplodedBasicBlock>public java.util.Iterator<IExplodedBasicBlock> iterator()
iterator in interface NodeManager<IExplodedBasicBlock>iterator in interface java.lang.Iterable<IExplodedBasicBlock>Iterator of the nodes in this graph
public void removeNode(IExplodedBasicBlock n)
throws java.lang.UnsupportedOperationException
NodeManager
removeNode in interface NodeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationException
public void addEdge(IExplodedBasicBlock src,
IExplodedBasicBlock dst)
throws java.lang.UnsupportedOperationException
addEdge in interface EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationException
public int getPredNodeCount(IExplodedBasicBlock bb)
throws java.lang.IllegalArgumentException
EdgeManagerimmediate predecessor nodes of n
getPredNodeCount in interface EdgeManager<IExplodedBasicBlock>java.lang.IllegalArgumentException
public java.util.Iterator<IExplodedBasicBlock> getPredNodes(IExplodedBasicBlock bb)
throws java.lang.IllegalArgumentException
EdgeManagerIterator over the immediate predecessor nodes of n
This method never returns null.
getPredNodes in interface EdgeManager<IExplodedBasicBlock>Iterator over the immediate predecessor nodes of this Node.
java.lang.IllegalArgumentException
public int getSuccNodeCount(IExplodedBasicBlock N)
throws UnimplementedError
EdgeManagerimmediate successor nodes of this Node in the Graph
getSuccNodeCount in interface EdgeManager<IExplodedBasicBlock>UnimplementedErrorpublic java.util.Iterator<IExplodedBasicBlock> getSuccNodes(IExplodedBasicBlock bb)
EdgeManager
This method never returns null.
getSuccNodes in interface EdgeManager<IExplodedBasicBlock>
public boolean hasEdge(IExplodedBasicBlock src,
IExplodedBasicBlock dst)
throws UnimplementedError
hasEdge in interface EdgeManager<IExplodedBasicBlock>UnimplementedError
public void removeAllIncidentEdges(IExplodedBasicBlock node)
throws java.lang.UnsupportedOperationException
removeAllIncidentEdges in interface EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationException
public void removeEdge(IExplodedBasicBlock src,
IExplodedBasicBlock dst)
throws java.lang.UnsupportedOperationException
removeEdge in interface EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationException
public void removeIncomingEdges(IExplodedBasicBlock node)
throws java.lang.UnsupportedOperationException
removeIncomingEdges in interface EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationException
public void removeOutgoingEdges(IExplodedBasicBlock node)
throws java.lang.UnsupportedOperationException
removeOutgoingEdges in interface EdgeManager<IExplodedBasicBlock>java.lang.UnsupportedOperationExceptionpublic int getMaxNumber()
getMaxNumber in interface NumberedNodeManager<IExplodedBasicBlock>public IExplodedBasicBlock getNode(int number)
getNode in interface NumberedNodeManager<IExplodedBasicBlock>
public int getNumber(IExplodedBasicBlock n)
throws java.lang.IllegalArgumentException
getNumber in interface NumberedNodeManager<IExplodedBasicBlock>java.lang.IllegalArgumentException
public java.util.Iterator<IExplodedBasicBlock> iterateNodes(IntSet s)
throws UnimplementedError
iterateNodes in interface NumberedNodeManager<IExplodedBasicBlock>UnimplementedErrorpublic IntSet getPredNodeNumbers(IExplodedBasicBlock node)
getPredNodeNumbers in interface NumberedEdgeManager<IExplodedBasicBlock>
public IntSet getSuccNodeNumbers(IExplodedBasicBlock node)
throws UnimplementedError
getSuccNodeNumbers in interface NumberedEdgeManager<IExplodedBasicBlock>UnimplementedErrorpublic java.lang.String toString()
toString in class java.lang.Objectpublic IR getIR()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||