wazabin-qcode-jit
A Cranelift JIT backend for QCode — an execution strategy alongside the interpreter, not a replacement for it.
qcode_emulator interprets QCode one
operation at a time: every intermediate value is materialised into its value
table and every operand resolved through the module. Compiled code does
neither. A QCode block is already SSA, so it maps onto Cranelift's SSA
directly, and values consumed inside a block stay in machine registers.
The backend is deliberately partial. A block it declines to compile is run
by the interpreter instead, so coverage can grow over time without ever
becoming a correctness question. compile::Unsupported names what was
declined and why.
Install it on a qcode_vm machine:
vm.set_block_executor;
The test suite runs programs both ways and requires identical results.
Developed by Thalium.
License
Licensed under the MIT License.