Table of Contents

Class ConditionDetection

Namespace
ICSharpCode.Decompiler.IL.ControlFlow
Assembly
ICSharpCode.Decompiler.dll

Detects 'if' structure and other non-loop aspects of control flow.

public class ConditionDetection : IBlockTransform
Inheritance
ConditionDetection
Implements
Inherited Members

Remarks

Order dependency: should run after loop detection. Blocks should be basic blocks prior to this transform. After this transform, they will be extended basic blocks.

Constructors

ConditionDetection()

public ConditionDetection()

Methods

GetStartILOffset(ILInstruction, out bool)

public static int GetStartILOffset(ILInstruction inst, out bool isEmpty)

Parameters

inst ILInstruction
isEmpty bool

Returns

int

Run(Block, BlockTransformContext)

Builds structured control flow for the block associated with the control flow node.

public void Run(Block block, BlockTransformContext context)

Parameters

block Block
context BlockTransformContext

Remarks

After a block was processed, it should use structured control flow and have just a single 'regular' exit point (last branch instruction in the block)