Class

org.opalj.br.cfg

BasicBlock

Related Doc: package cfg

Permalink

class BasicBlock extends CFGNode

Represents a basic block of a method's control flow graph (CFG). The basic block is identified by referring to the first and last instruction belonging to the basic block.

Linear Supertypes
CFGNode, Node, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BasicBlock
  2. CFGNode
  3. Node
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BasicBlock(startPC: PC, successors: Set[CFGNode])

    Permalink
  2. new BasicBlock(startPC: PC, _endPC: PC = Int.MinValue)

    Permalink

    startPC

    The pc of the first instruction belonging to the BasicBlock.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def addPredecessor(predecessor: CFGNode): Unit

    Permalink
    Definition Classes
    CFGNode
  5. def addSuccessor(successor: CFGNode): Unit

    Permalink
    Definition Classes
    CFGNode
  6. final def asBasicBlock: BasicBlock.this.type

    Permalink
    Definition Classes
    BasicBlockCFGNode
  7. def asCatchNode: CatchNode

    Permalink
    Definition Classes
    CFGNode
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def copy(startPC: Int = this.startPC, endPC: Int = this.endPC, predecessors: Set[CFGNode] = this.predecessors, successors: Set[CFGNode] = this.successors): BasicBlock

    Permalink
  11. def countInstructions(implicit code: Code): Int

    Permalink

    Counts the instructions of this basic block.

  12. def endPC: PC

    Permalink

    The pc of the last instruction belonging to this basic block.

  13. def endPC_=(pc: PC): Unit

    Permalink
  14. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. def equals(other: Any): Boolean

    Permalink
    Definition Classes
    Node → AnyRef → Any
  16. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def foreach[U](f: (PC) ⇒ U)(implicit code: Code): Unit

    Permalink

    Calls the function f for all instructions - identified by their respective pcs - of a basic block.

    Calls the function f for all instructions - identified by their respective pcs - of a basic block.

    f

    The function that will be called.

    code

    The org.opalj.br.Code object to which this BasicBlock implicitly belongs.

  18. final def foreachSuccessor(f: (Node) ⇒ Unit): Unit

    Permalink
    Definition Classes
    CFGNode → Node
  19. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  20. final def hasSuccessors: Boolean

    Permalink
    Definition Classes
    CFGNode → Node
  21. def hashCode(): Int

    Permalink
    Definition Classes
    Node → AnyRef → Any
  22. def index(pc: PC)(implicit code: Code): Int

    Permalink

    Returns the index of an instruction – identified by its program counter (pc) – in a basic block.

    Returns the index of an instruction – identified by its program counter (pc) – in a basic block.

    Example

    Given a basic block which has five instructions which have the following program counters: {0,1,3,5,6}. In this case the index of the instruction with program counter 3 will be 2 and in case of the instruction with pc 6 the index will be 4.

    pc

    The program counter of the instruction for which the index is needed. pc has to satisfy: startPC <= pc <= endPC.

    code

    The code to which this basic block belongs.

  23. final def isBasicBlock: Boolean

    Permalink
    Definition Classes
    BasicBlockCFGNode
  24. final def isCatchNode: Boolean

    Permalink
    Definition Classes
    BasicBlockCFGNode
  25. final def isExitNode: Boolean

    Permalink
    Definition Classes
    BasicBlockCFGNode
  26. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  27. def isStartOfSubroutine: Boolean

    Permalink
    Definition Classes
    BasicBlockCFGNode
  28. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  29. final def nodeId: Int

    Permalink
    Definition Classes
    BasicBlock → Node
  30. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  31. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  32. def predecessors: Set[CFGNode]

    Permalink
    Definition Classes
    CFGNode
  33. def reachable(reflexive: Boolean = false): Set[CFGNode]

    Permalink

    Computes the set of all CFGNodes that are reachable from this one.

    Computes the set of all CFGNodes that are reachable from this one.

    Definition Classes
    CFGNode
    Note

    The result is not cached.

  34. def removePredecessor(predecessor: CFGNode): Unit

    Permalink
    Definition Classes
    CFGNode
  35. def setIsStartOfSubroutine(): Unit

    Permalink
  36. val startPC: PC

    Permalink

    The pc of the first instruction belonging to the BasicBlock.

  37. def successors: Set[CFGNode]

    Permalink
    Definition Classes
    CFGNode
  38. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  39. def toHRR: Option[String]

    Permalink
    Definition Classes
    BasicBlock → Node
  40. def toString(): String

    Permalink
    Definition Classes
    BasicBlock → AnyRef → Any
  41. def visualProperties: Map[String, String]

    Permalink
    Definition Classes
    BasicBlock → Node
  42. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  44. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from CFGNode

Inherited from Node

Inherited from AnyRef

Inherited from Any

Ungrouped