Show / Hide Table of Contents

    Class IntraproceduralOptimization

    Describes an intraprocedural optimization: an optimization that considers a method implementation only and does not rely on the implementation of other methods.

    Inheritance
    System.Object
    Optimization
    IntraproceduralOptimization
    CanonicalizeArrayInit
    CanonicalizeDelegates
    ExpandLinq
    LowerBox
    LowerDelegates
    AllocaToRegister
    BlockFusion
    BoxToAlloca
    CallDevirtualization
    ConstantPropagation
    CopyPropagation
    DeadBlockElimination
    DeadValueElimination
    DuplicateReturns
    ForwardRegisters
    FuseMemoryAccesses
    GlobalValueNumbering
    InstructionReordering
    InstructionSimplification
    JumpThreading
    JumpToEntryRemoval
    MemoryAccessElimination
    PartialScalarReplacement
    ReassociateOperators
    ScalarReplacement
    SwitchLowering
    SwitchSimplification
    Inherited Members
    System.Object.ToString()
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    Namespace: Flame.Compiler.Transforms
    Assembly: Flame.Compiler.dll
    Syntax
    public abstract class IntraproceduralOptimization : Optimization

    Properties

    | Improve this Doc View Source

    IsCheckpoint

    Tells if this optimization checkpoints its result. The optimizer takes care to always return the latest checkpointed method body is returned when a method's optimized method body is requested.

    Declaration
    public override bool IsCheckpoint { get; }
    Property Value
    Type Description
    System.Boolean

    Tells if this optimization performs a checkpoint.

    Overrides
    Optimization.IsCheckpoint

    Methods

    | Improve this Doc View Source

    Apply(FlowGraph)

    Applies this intraprocedural optimization to a flow graph.

    Declaration
    public abstract FlowGraph Apply(FlowGraph graph)
    Parameters
    Type Name Description
    FlowGraph graph

    The flow graph to transform.

    Returns
    Type Description
    FlowGraph

    A transformed flow graph.

    | Improve this Doc View Source

    ApplyAsync(MethodBody, OptimizationState)

    Applies the optimization to a method body.

    Declaration
    public override Task<MethodBody> ApplyAsync(MethodBody body, OptimizationState state)
    Parameters
    Type Name Description
    MethodBody body

    A method body holder to optimize.

    OptimizationState state

    State associated with optimizations.

    Returns
    Type Description
    System.Threading.Tasks.Task<MethodBody>

    A task that produces an optimized method body.

    Overrides
    Optimization.ApplyAsync(MethodBody, OptimizationState)
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX