Class IRBlock

A basic block with additional information about its predecessor and successor edges. Each edge corresponds to the control flow between the last instruction of one block and the first instruction of another block.

Import path

import semmle.code.cpp.ir.implementation.raw.IRBlock

Direct supertypes

Indirect supertypes

Predicates

dominanceFrontier

Gets a block on the dominance frontier of this block.

dominates

Holds if this block dominates block.

getAPredecessor

Gets a block from which control flows directly to this block.

getASuccessor

Gets a block to which control flows directly from this block.

getBackEdgeSuccessor

Gets the block to which control flows directly from this block along a back edge of kind kind.

getSuccessor

Gets the block to which control flows directly from this block along an edge of kind kind.

immediatelyDominates

Holds if this block immediately dominates block.

isReachableFromFunctionEntry

Holds if this block is reachable from the entry block of its function.

strictlyDominates

Holds if this block strictly dominates block.

Inherited predicates

getAPhiInstruction

Get the Phi instructions that appear at the start of this block.

from IRBlockBase
getAnInstruction

Gets an instruction in this block. This includes Phi instructions.

from IRBlockBase
getDisplayIndex

INTERNAL: Do not use.

from IRBlockBase
getEnclosingFunction

Gets the Function that contains this block.

from IRBlockBase
getEnclosingIRFunction

Gets the IRFunction that contains this block.

from IRBlockBase
getFirstInstruction

Gets the first non-Phi instruction in this block.

from IRBlockBase
getInstruction

Gets the indexth non-Phi instruction in this block.

from IRBlockBase
getInstructionCount

Gets the number of non-Phi instructions in this block.

from IRBlockBase
getLastInstruction

Gets the last instruction in this block.

from IRBlockBase
getLocation

Gets the source location of the first non-Phi instruction in this block.

from IRBlockBase
getUniqueId

INTERNAL: Do not use.

from IRBlockBase
toString

Gets a textual representation of this block.

from IRBlockBase