Interface ControlFlowGraph<I,T extends IBasicBlock<I>>

All Superinterfaces:
EdgeManager<T>, Graph<T>, Iterable<T>, MinimalCFG<T>, NodeManager<T>, NumberedEdgeManager<T>, NumberedGraph<T>, NumberedNodeManager<T>
All Known Implementing Classes:
AbstractCFG, AstInducedCFG, AstTranslator.AstCFG, DelegatingCFG, DexCFG, ExplodedControlFlowGraph, InducedCFG, JSInducedCFG, MutableCFG, PrunedCFG, ShrikeCFG, SSACFG

public interface ControlFlowGraph<I,T extends IBasicBlock<I>> extends NumberedGraph<T>, MinimalCFG<T>
An interface that is common to the Shrike and SSA CFG implementations.
  • Method Details

    • getCatchBlocks

      BitVector getCatchBlocks()
      Returns:
      the indices of the catch blocks, as a bit vector
    • getBlockForInstruction

      T getBlockForInstruction(int index)
      Parameters:
      index - an instruction index
      Returns:
      the basic block which contains this instruction.
    • getInstructions

      I[] getInstructions()
      Returns:
      the instructions of this CFG, as an array.
    • getProgramCounter

      int getProgramCounter(int index)
      TODO: move this into IR?
      Parameters:
      index - an instruction index
      Returns:
      the program counter (bytecode index) corresponding to that instruction
    • getMethod

      IMethod getMethod()
      Returns:
      the Method this CFG represents