Extending a Meta-Tracing Compiler to Mix Method and Tracing Compilation
Meta-interpreter-based just-in-time compiler frameworks provide a convenient way for language designers to implement efficient virtual machines. Those frameworks either employ tracing-based or method- (or partial evaluation) based strategies, which have their own pros and cons.
This paper proposes an approach to enable both tracing- and method-based compilation so that the runtime can selectively apply an appropriate strategy to different parts of a program.
The proposal basically extends a meta-tracing compiler to method-based compilation by rolling back at conditional branches, trace-splitting at loop entries, and not following at function calls.
As a proof-of-concept, we implemented a tiny meta-tracing compiler in MinCaml by following the RPython’s architecture and extended it to support both tracing- and method-based compilation.
Conference DayTue 2 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
08:50 - 10:30
|Region-Based Compilation in the HHVM JIT CompilerMoreVMs Invited Talk|
I: Guilherme OttoniFacebook
|Extending a Meta-Tracing Compiler to Mix Method and Tracing Compilation|
Yusuke IzawaTokyo Institute of Technology, Hidehiko MasuharaTokyo Institute of Technology, Tomoyuki AotaniTokyo Institute of TechnologyDOI Pre-print Media Attached