Share via


ControlFlowGraph Class

Definition

Control flow graph representation for a given executable code block OriginalOperation. This graph contains a set of BasicBlocks, with an entry block, zero or more intermediate basic blocks and an exit block. Each basic block contains zero or more Operations and explicit ControlFlowBranch(s) to other basic block(s).

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

Properties

Blocks

Basic blocks for the control flow graph.

LocalFunctions

Local functions declared within OriginalOperation.

OriginalOperation

Original operation, representing an executable code block, from which this control flow graph was generated. Note that Operations in the control flow graph are not in the same operation tree as the original operation.

Parent

Optional parent control flow graph for this graph. Non-null for a control flow graph generated for a local function or a lambda. Null otherwise.

Root

Root (Root) region for the graph.

Methods

Create(IAttributeOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block attribute.

Create(IBlockOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block body.

Create(IConstructorBodyOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block constructorBody.

Create(IFieldInitializerOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block initializer.

Create(IMethodBodyOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block methodBody.

Create(IParameterInitializerOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block initializer.

Create(IPropertyInitializerOperation, CancellationToken)

Creates a ControlFlowGraph for the given executable code block initializer.

Create(SyntaxNode, SemanticModel, CancellationToken)

Creates a ControlFlowGraph for the given executable code block root node.

GetAnonymousFunctionControlFlowGraph(IFlowAnonymousFunctionOperation, CancellationToken)

Creates a control flow graph for the given anonymousFunction.

GetLocalFunctionControlFlowGraph(IMethodSymbol, CancellationToken)

Creates a control flow graph for the given localFunction.

Extension Methods

GetAnonymousFunctionControlFlowGraphInScope(ControlFlowGraph, IFlowAnonymousFunctionOperation, CancellationToken)

Gets or creates a control flow graph for the given anonymousFunction defined in the given controlFlowGraph or any of it's parent control flow graphs.

GetLocalFunctionControlFlowGraphInScope(ControlFlowGraph, IMethodSymbol, CancellationToken)

Gets or creates a control flow graph for the given localFunction defined in the given controlFlowGraph or any of it's parent control flow graphs.

Applies to