Class BlockReachability
A description of which blocks can reach other blocks in a control-flow graph.
Inherited Members
Namespace: Flame.Compiler.Analysis
Assembly: Flame.Compiler.dll
Syntax
public abstract class BlockReachability
Methods
| Improve this Doc View SourceGetStrictlyReachableBlocks(BasicBlockTag)
Gets the set of all basic blocks that are strictly reachable from a particular basic block.
Declaration
public abstract 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 |
IsReachableFrom(BasicBlockTag, BasicBlockTag)
Tests if there exists a (possibly empty) path through the
control-flow graph that starts at source
and ends at target
.
Declaration
public bool IsReachableFrom(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 |
|
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 abstract 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 |
|