Namespace Flame.Compiler.Target
Classes
InstructionStreamBuilder<TInstruction>
Translates flow graphs to linear sequences of target-specific instructions.
PeepholeOptimizer<TInstruction, TExternalRef>
A target-specific peephole optimizer: an optimizer that walks through a linear sequence of target-specific instructions, recognizes patterns and rewrites small batches of instructions.
SelectedFlowInstructions
A collection of selected instructions for block flow.
SelectedInstructions
A collection of selected instructions for a value.
StackInstructionStreamBuilder<TInstruction>
An instruction stream builder that manages data transfer using a combination of stack slots and explicit register loads/stores, as commonly offered by stack machines.
Structs
PeepholeRewriteRule<TInstruction>
A rewrite rule as used by a peephole optimizer.
SelectedFlowInstructions<TInstruction>
A collection of selected instructions for block flow.
SelectedInstructions<TInstruction>
A collection of selected instructions for a value.
Interfaces
IInstructionSelector<TInstruction>
A base class for instruction selection algorithms. Instruction selectors take IR instructions and turn them into sequences of target-specific instructions.
ILinearInstructionSelector<TInstruction>
An instruction selection algorithm for instruction sets that produce linear streams of instructions, that is, control flow is expressed using branches to branch targets.
IStackInstructionSelector<TInstruction>
An instruction selector for a stack machine that can transfer data using either stack slots or register loads and stores.