Share via


BasicBlock Class

Definition

Represents a basic block in a ControlFlowGraph with a sequence of Operations. Once a basic block is entered, all operations in it are always executed. Optional BranchValue, if non-null, is evaluated after the Operations. Control flow leaves the basic block by taking either the ConditionalSuccessor branch or the FallThroughSuccessor branch.

public ref class BasicBlock sealed
public sealed class BasicBlock
type BasicBlock = class
Public NotInheritable Class BasicBlock
Inheritance
BasicBlock

Properties

BranchValue

Optional branch value, which if non-null, is evaluated after Operations. For conditional branches, this value is used to represent the condition which determines if ConditionalSuccessor is taken or not. For non-conditional branches, this value is used to represent the return or throw value associated with the FallThroughSuccessor.

ConditionalSuccessor

Optional conditional branch out of the basic block. If non-null, this branch may be taken at the end of the basic block based on the ConditionKind and BranchValue.

ConditionKind

Indicates the condition kind for the branch out of the basic block.

EnclosingRegion

Enclosing region.

FallThroughSuccessor

Optional fall through branch executed at the end of the basic block. This branch is null for exit block, and non-null for all other basic blocks.

IsReachable

Indicates if control flow can reach this basic block from the entry block of the graph.

Kind

Basic block kind (entry, block, or exit).

Operations

Sequence of operations in the basic block.

Ordinal

Unique ordinal for each basic block in a ControlFlowGraph, which can be used to index into Blocks array.

Predecessors

List of basic blocks which have a control flow branch (FallThroughSuccessor or ConditionalSuccessor) into this basic block.

Applies to