Expand description
Backend trait and registry for multi-backend compilation
Every compiler backend (ARM, aWsm, wasker, w2c2) implements the Backend
trait, allowing the CLI and verification framework to treat them uniformly.
Structs§
- Backend
Capabilities - What a backend can and cannot do
- Backend
Registry - Registry of available backends
- Code
Relocation - Compilation
Result - Result of compiling a full module
- Compile
Config - Configuration for a compilation run
- Compiled
Function - A single compiled function
- Volatile
Range - #543 — an integrator-marked volatile linear-memory segment (the DMA transfer
window): the half-open byte range
[base, base + len)of the fused linear memory that an external agent rewrites out-of-band. Parsed from the CLI--volatile-segment <base>:<len>flag. SeeCompileConfig::volatile_segmentsfor the Phase-1/Phase-2 split.
Enums§
- Backend
Error - Errors from backend compilation
- Branch
Class - VCR-DEC-003 (#396, witness#130): the object-level control-flow class of one
emitted machine instruction, captured at encode time alongside
LineMap. It is the piece post-hoc CLI derivation cannot recover —line_maprecords which wasm op an instruction came from, but not whether that instruction IS a conditional branch, an unconditional branch, or a predicated (IT-block) move. Thesynth-provenance-v1emitter needs it to enumerate the ACTUAL object conditional branches (so it can prove “every object branch resolves to a source condition”, not just “every source branch has an object PC”). - Reloc
Kind - A relocation entry produced during compilation
- Safety
Bounds - Memory-bounds safety strategy. Phase 1 of
docs/binary-safety-design.md§3.1.
Constants§
- OPTIMIZED_
LINMEM_ BASE - The absolute SRAM address the OPTIMIZED (non-relocatable) ARM path
materializes as its linear-memory base (
MOVW/MOVT R12, #basebefore each const-address access, and the #468 base-CSE R11 hoist). Historical value: 256 bytes above the SRAM start — the differential-harness contract for optimized-path fixtures maps linmem here.CompileConfig::linmem_basedefaults to this;--stack-layout=low(#687) shifts it up by the reserved stack size so the moved layout reaches user code, not just the startup.
Traits§
- Backend
- Trait that every compilation backend implements
Type Aliases§
- Branch
Map - VCR-DEC-003: per-instruction object-branch class, parallel to
LineMap(same length, same order — one entry per emitted machine instruction).(machine_offset_within_code, class). Empty when provenance is not being produced (never serialized into.text; frozen-safe additive metadata). - LineMap
- VCR-DBG-001: a per-instruction source map —
(machine_offset_within_code, wasm_op_index)pairs, one per emitted machine instruction. ANoneop-index marks an instruction with no originating wasm op (prologue/epilogue, literal pool). Consumed by the DWARF.debug_lineemitter; empty when no source map was produced.