Class ConservativeInstructionOrderingAnalysis
A conservative analysis that determines the must-run-before relation between instructions. The must-run-before relation is determined by imposing a total ordering on effectful instructions.
Implements
Inherited Members
Namespace: Flame.Compiler.Analysis
Assembly: Flame.Compiler.dll
Syntax
public sealed class ConservativeInstructionOrderingAnalysis : IFlowGraphAnalysis<InstructionOrdering>
Fields
| Edit this page View SourceInstance
An instance of the conservative instruction ordering analysis.
Declaration
public static readonly ConservativeInstructionOrderingAnalysis Instance
Field Value
| Type | Description |
|---|---|
| ConservativeInstructionOrderingAnalysis | A conservative instruction ordering analysis. |
Methods
| Edit this page View SourceAnalyze(FlowGraph)
Analyzes a flow graph from scratch.
Declaration
public InstructionOrdering Analyze(FlowGraph graph)
Parameters
| Type | Name | Description |
|---|---|---|
| FlowGraph | graph | The flow graph to analyze. |
Returns
| Type | Description |
|---|---|
| InstructionOrdering | The analysis' output. |
AnalyzeWithUpdates(FlowGraph, InstructionOrdering, IReadOnlyList<FlowGraphUpdate>)
Analyzes a flow graph based on the flow graph, the previous result, and a list of updates that were applied to the graph since the previous result.
Declaration
public InstructionOrdering AnalyzeWithUpdates(FlowGraph graph, InstructionOrdering previousResult, IReadOnlyList<FlowGraphUpdate> updates)
Parameters
| Type | Name | Description |
|---|---|---|
| FlowGraph | graph | The current version of the flow graph to analyze. |
| InstructionOrdering | previousResult | A previous result produced by this analysis. |
| IReadOnlyList<FlowGraphUpdate> | updates | A list of updates that were applied to the flow graph since the previous result was computed. |
Returns
| Type | Description |
|---|---|
| InstructionOrdering | The analysis' output, which must be equal to a call to
|