Two-level Just-in-Time Compilation with One Interpreter and One Engine
Yusuke Izawa, Hidehiko Masuhara, Carl Friedrich Bolz-Tereick

TL;DR
This paper introduces a two-level JIT compilation approach in RPython that simplifies implementation by using a single interpreter and engine, achieving significant performance improvements and code size reduction.
Contribution
It presents a novel method for two-level JIT in RPython without multiple interpreters, including an adaptive JIT and preliminary evaluation results.
Findings
Baseline JIT runs 1.77x faster than interpreter-only execution.
Optimal JIT for different methods yields similar performance to strategy-specific JIT.
JIT code size is reduced by about 40% with the proposed approach.
Abstract
Modern, powerful virtual machines such as those running Java or JavaScript support multi-tier JIT compilation and optimization features to achieve their high performance. However, implementing and maintaining several compilers/optimizers that interact with each other requires hard-working VM developers. In this paper, we propose a technique to realize two-level JIT compilation in RPython without implementing several interpreters or compilers from scratch. As a preliminary realization, we created adaptive RPython, which performs both baseline JIT compilation based on threaded code and tracing JIT compilation. We also implemented a small programming language with it. Furthermore, we preliminarily evaluated the performance of that small language, and our baseline JIT compilation ran 1.77x faster than the interpreter-only execution. Furthermore, we observed that when we apply an optimal JIT…
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.
Taxonomy
TopicsCloud Computing and Resource Management · Parallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems
