Namespace Flame.Compiler
Classes
BasicBlockBuilder
A basic block in a mutable control-flow graph builder.
BasicBlockTag
A unique tag type for basic blocks.
BlockFlow
Describes control flow at the end of a basic block.
Branch
A branch to a particular block that passes a list of values as arguments.
FlowGraph
An immutable control-flow graph that consists of basic blocks.
FlowGraphBuilder
A mutable view of an immutable control-flow graph.
InstructionBuilder
A reference to an instruction in a control-flow graph, which can either be a named instruction that is defined directly by a basic block or an unnamed instruction included in a block's flow.
This is a mutable reference: it refers to an instruction in a control-flow graph builder and that instruction can be changed.
InstructionPrototype
Describes an instruction's prototype: everything there is to an instruction except for its arguments.
MethodBody
A method body: a method implementation represented as a control-flow graph along with a private copy of the return parameter, 'this' parameter and input parameters.
NamedInstruction
A named instruction in the context of a control-flow graph.
NamedInstructionBuilder
A named instruction in a mutable control-flow graph builder.
UniqueTag
A base class for unique tags: identifiers for values that have a name and use referential equality instead of structural equality.
ValueTag
A unique tag type for values.
Structs
BasicBlock
A basic block in a control-flow graph.
BlockParameter
A parameter to a basic block.
BranchArgument
An argument to a branch.
Instruction
An instruction: a statement that produces a single value.
Interfaces
IBodyMethod
A method that defines a method body.
Enums
BranchArgumentKind
An enumeration of things a branch argument can be.