wazabin-qcode-jit 0.2.0

Cranelift JIT backend for the qcode IR: an alternative execution strategy to the interpreter
Documentation

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(Box::new(qcode_jit::Jit::new()));

The test suite runs programs both ways and requires identical results.

Developed by Thalium.

License

Licensed under the MIT License.