The yk project enables automatic JIT compilation of existing C interpreters by applying meta-tracing at the LLVM IR level. By modifying only ~400 lines of code in PUC Lua, the team created yklua — a JIT-enabled fork that achieves roughly 2x geometric mean speedup over the reference interpreter. The approach uses a custom LLVM
Table of contents
Why are JIT compilers hard?Automatic JIT compilersDeriving a JIT compiler from C interpretersTracing and meta-tracingFrom a C interpreter to a meta-tracing interpreterOptimising a traceBackwards code generationLocationsDeoptimisationConclusionsSort: