Meta-compilation of Baseline JIT Compilers with Druid
Nahuel Palumbo (University of Lille - Inria - CNRS - Centrale Lille -, UMR 9189 CRIStAL, France), Guillermo Polito (University of Lille - Inria -, CNRS - Centrale Lille - UMR 9189 CRIStAL, France), St\'ephane Ducasse

TL;DR
This paper introduces Druid, an automatic tool that generates baseline JIT compiler frontends from interpreters, significantly improving warm-up times and maintainability of language virtual machines.
Contribution
Druid automates the creation of baseline JIT frontends from interpreters using meta-compilation, reducing development effort and enhancing VM performance.
Findings
Generated JIT frontend is 2x faster than the interpreter
Achieves 0.7x performance of handwritten JIT
Requires minimal changes in the interpreter (60 call sites)
Abstract
Virtual Machines (VMs) combine interpreters and just-in-time (JIT) compiled code to achieve good performance. However, implementing different execution engines increases the cost of developing and maintaining such solutions. JIT compilers based on meta-compilation cope with these issues by automatically generating optimizing JIT compilers. This leaves open the question of how meta-compilation applies to baseline JIT compilers, which improve warmup times by trading off optimizations. In this paper, we present Druid, an ahead-of-time automatic approach to generate baseline JIT compiler frontends from interpreters. Language developers guide meta-compilation by annotating interpreter code and using Druid's intrinsics. Druid targets the meta-compilation to an existing JIT compiler infrastructure to achieve good warm-up performance. We applied Druid in the context of the Pharo programming…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
