Add an automatically generated meta-tracing JIT compiler to an existing C-based language interpreter
Use the mainstream C interpreter as the language's source of truth, then instrument its execution and generate machine code for frequently executed guest-language loops. This improves performance without replacing the interpreter or requiring a separately implemented language runtime.
From InfoQ — 4x Faster Interpreters? The Meta-Tracing Secret EXPOSED at 00:35
Problem: Traditional alternative JIT virtual machines are difficult and expensive to build, can be incompatible with the language and its ecosystem, and tend to fall behind as the language evolves. Rewriting software in another language or maintaining a separate implementation creates additional cost and compatibility risk.
For: Teams maintaining slow scripting-language implementations, legacy interpreters, CPU simulators, and developers whose existing software has become too slow to operate acceptably.
Products from this video
Examples
- The standard Lua VM ran the demonstrated Mandelbrot program in 3.2 seconds; the YK Lua fork ran it at about 4x faster.