Expand description
Cranelift code generation library.
Re-exports§
pub use crate::verifier::verify_function;pub use crate::write::write_function;pub use cranelift_bforest as bforest;pub use cranelift_entity as entity;pub use gimli;
Modules§
- binemit
- Binary machine code emission.
- cfg_
printer - The
CFGPrinterutility. - cursor
- Cursor library.
- data_
value - This module gives users to instantiate values that Cranelift understands. These values are used, for example, during interpretation and for wrapping immediates.
- dbg
- Debug tracing helpers.
- dominator_
tree - A Dominator Tree represented as mappings of Blocks to their immediate dominator.
- flowgraph
- A control flow graph represented as mappings of basic blocks to their predecessors and successors.
- ir
- Representation of Cranelift IR functions.
- isa
- Instruction Set Architectures.
- loop_
analysis - A loop analysis represented as mappings of loops to their header Block and parent in the loop tree.
- packed_
option - Compact representation of
Option<T>for types with a reserved value. - print_
errors - Utility routines for pretty-printing error messages.
- settings
- Shared settings module.
- timing
- Pass timing.
- verifier
- A verifier for ensuring that functions are well formed. It verifies:
- write
- Converting Cranelift IR to text.
Macros§
- trace
- Even when trace logging is disabled, the trace macro has a significant performance cost so we disable it by default.
Structs§
- Compile
Error - Compilation error, with the accompanying function to help printing it.
- Context
- Persistent data structures and compilation pipeline.
- Final
- Status of a compiled artifact ready to use.
- Mach
Buffer - A buffer of output to be produced, fixed up, and then emitted to a CodeSink in bulk.
- Mach
Buffer Finalized - A
MachBufferonce emission is completed: holds generated code and records, without fixups. This allows the type to be independent of the backend. - Mach
Call Site - A call site record resulting from a compilation.
- Mach
Reloc - A relocation resulting from a compilation.
- Mach
SrcLoc - A source-location mapping resulting from a compilation.
- Mach
Stack Map - Record of stack map metadata: stack offsets containing references.
- Mach
Text Section Builder - Implementation of the
TextSectionBuildertrait backed byMachBuffer. - Mach
Trap - A trap record resulting from a compilation.
- Reg
- A register named in an instruction. This register can be either a
virtual register or a fixed physical register. It does not have
any constraints applied to it: those can be added later in
MachInst::get_operands()when theRegs are converted toOperands. - Value
LocRange - Value location range.
- Writable
- A type wrapper that indicates a register type is writable. The
underlying register can be extracted, and the type wrapper can be
built using an arbitrary register. Hence, this type-level wrapper
is not strictly a guarantee. However, “casting” to a writable
register is an explicit operation for which we can
audit. Ordinarily, internal APIs in the compiler backend should
take a
Writable<Reg>whenever the register is written, and the usual, frictionless way to get one of these is to allocate a new temporary.
Enums§
- Codegen
Error - A compilation error.
Constants§
- VERSION
- Version number of this crate.
Traits§
- Mach
Inst - A machine instruction.
- Mach
Inst Emit - A trait describing the ability to encode a MachInst into binary machine code.
- Text
Section Builder - An object that can be used to create the text section of an executable.
Type Aliases§
- Codegen
Result - A convenient alias for a
Resultthat usesCodegenErroras the error type. - Compiled
Code CompiledCodein its final form (i.e. afterFunctionParametershave been applied), ready for consumption.- Value
Labels Ranges - Resulting map of Value labels and their ranges/locations.