Two-level Just-in-Time Compilation with One Interpreter and One Engine
summary
Adaptive RPython generates both a baseline (threaded-code) JIT and a tracing JIT from one interpreter and one engine by producing multiple interpreter variants via a preprocessor and tweaking handlers with dont_look_inside and a method-traversal interpreter that uses a travel stack to force whole-method traces. A small TLA language prototype shows the baseline JIT runs about 1.77× faster than interpreter-only and combining baseline+tracing keeps tracing speed while cutting compiled-code size by roughly 30–40%.
AI-written summary · about
chapters (9)
- 0:00Start
- 1:05Introduction
- 5:00Meta Tracing
- 11:01Meta Tracing System
- 12:38Sobel Edge Detection Algorithm
- 19:30Meta Tracing Jit Compilation
- 22:04Overview of Master Compilation on Adaptive R Bison
- 24:05Meta Tracing Compilation
- 25:10Insulated Code Generation and Method Compilation
related talks
40mJoy of Meta-Tracing Just-in-Time Compilation: More Than Just a VM Generator
15mTracing Just-in-time Compilation for Effects and Handlers
17mInside a PyPy JIT: is that even legal?
19mReusing Just-in-Time Compiled Code
17mAST vs. Bytecode: Interpreters in the Age of Meta-Compilation
43mCreate your own Interpreter with a JIT in 1 hour
41mHow to write a JIT compiler in 30 minutes
28mCopy-and-Patch Just-in-Time Compiler for R
