CodeQL library for C/C++
codeql/cpp-all 2.1.1 (changelog, source)
Search

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.IR

Direct supertypes

Indirect supertypes

Known direct subtypes

    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.

    immediatelyPostDominates

    Holds if this block immediately post-dominates block.

    isReachableFromFunctionEntry

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

    postDominanceFrontier

    Gets a block on the post-dominance frontier of this block.

    postDominates

    Holds if this block is a post-dominator of block.

    strictlyDominates

    Holds if this block strictly dominates block.

    strictlyPostDominates

    Holds if this block strictly post-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
    toString

    Gets a textual representation of this block.

    from IRBlockBase