Show / Hide Table of Contents

    Class LazyBlockReachability

    A block reachability implementation that performs reachability analysis on an on-demand basis and caches the results.

    Inheritance
    System.Object
    BlockReachability
    LazyBlockReachability
    Inherited Members
    BlockReachability.IsReachableFrom(BasicBlockTag, BasicBlockTag)
    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.Analysis
    Assembly: Flame.Compiler.dll
    Syntax
    public sealed class LazyBlockReachability : BlockReachability

    Constructors

    | Improve this Doc View Source

    LazyBlockReachability(FlowGraph)

    Creates a lazy block reachability analysis for a particular graph.

    Declaration
    public LazyBlockReachability(FlowGraph graph)
    Parameters
    Type Name Description
    FlowGraph graph

    The graph to create a reachability analysis for.

    Properties

    | Improve this Doc View Source

    Graph

    Gets the flow graph that is queried for reachability.

    Declaration
    public FlowGraph Graph { get; }
    Property Value
    Type Description
    FlowGraph

    The flow graph.

    Methods

    | Improve this Doc View Source

    GetStrictlyReachableBlocks(BasicBlockTag)

    Gets the set of all basic blocks that are strictly reachable from a particular basic block.

    Declaration
    public override IEnumerable<BasicBlockTag> GetStrictlyReachableBlocks(BasicBlockTag source)
    Parameters
    Type Name Description
    BasicBlockTag source

    The source block to start at.

    Returns
    Type Description
    System.Collections.Generic.IEnumerable<BasicBlockTag>

    A set of basic block tags referring to basic blocks that are reachable from source.

    Overrides
    BlockReachability.GetStrictlyReachableBlocks(BasicBlockTag)
    | Improve this Doc View Source

    IsStrictlyReachableFrom(BasicBlockTag, BasicBlockTag)

    Tests if there exists a nonempty path through the control-flow graph that starts at source and ends at target.

    Declaration
    public override bool IsStrictlyReachableFrom(BasicBlockTag source, BasicBlockTag target)
    Parameters
    Type Name Description
    BasicBlockTag source

    The block tag of the start of the path.

    BasicBlockTag target

    The block tag of the end of the path.

    Returns
    Type Description
    System.Boolean

    true if there is such a path; otherwise, false.

    Overrides
    BlockReachability.IsStrictlyReachableFrom(BasicBlockTag, BasicBlockTag)
    • Improve this Doc
    • View Source
    Back to top Generated by DocFX