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
ILInstructionisEmpty
bool
Returns
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
Blockcontext
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)