Two-level Just-in-Time Compilation with One Interpreter and One Engine
@article{Izawa2022TwolevelJC, title={Two-level Just-in-Time Compilation with One Interpreter and One Engine}, author={Yusuke Izawa and Hidehiko Masuhara and Carl Friedrich Bolz-Tereick}, journal={ArXiv}, year={2022}, volume={abs/2201.09268} }
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…
References
SHOWING 1-10 OF 27 REFERENCES
Threaded Code Generation with a Meta-tracing JIT Compiler
- Computer ScienceJ. Object Technol.
- 2022
A meta-hybrid JIT compiler framework to take advantages of the two strategies as a language implementation framework and to use it for further speed-up by preventing the path-divergence problem, which causes serious slowdown.
Practical partial evaluation for high-performance dynamic language runtimes
- Computer SciencePLDI 2017
- 2017
This work defines languages solely by writing an interpreter and develops a general-purpose compilation system that is competitive with production systems even when they have been heavily optimized for the one language they support.
Tracing the meta-level: PyPy's tracing JIT compiler
- Computer ScienceICOOOLPS@ECOOP
- 2009
This paper shows how to guide tracing JIT compilers to greatly improve the speed of bytecode interpreters, and how to unroll the bytecode dispatch loop, based on two kinds of hints provided by the implementer of thebytecode interpreter.
Pycket: a tracing JIT for a functional language
- Computer ScienceICFP 2015
- 2015
Pycket supports a wide variety of the sophisticated features in Racket such as contracts, continuations, classes, structures, dynamic binding, and more, and outperforms existing compilers, both Racket's JIT and other highly-optimizing Scheme compilers.
Runtime feedback in a meta-tracing JIT for efficient dynamic languages
- Computer ScienceICOOOLPS@ECOOP
- 2011
The mechanisms in PyPy's meta-tracing JIT that can be used to control runtime feedback in language-specific ways are described, which are flexible enough to express classical VM techniques such as maps and runtime type feedback.
Improving Sequential Performance of Erlang Based on a Meta-tracing Just-In-Time Compiler
- Computer ScienceTFP
- 2016
Pyrlang, an Erlang virtual machine with a just-in-time (JIT) compiler by applying an existing meta-tracing JIT compiler is developed, showing approximately 38% speedup over the standard Erlang interpreter.
Implementing jalapeño in Java
- Computer ScienceOOPSLA '99
- 1999
Jalapeño is a virtual machine for Java#8482; servers written in Java that reduces the Java / non-Java boundary below the virtual machine rather than above it, and opens up more opportunities for optimization.
Threaded code designs for Forth interpreters
- Computer ScienceSIFN
- 1992
Forth interpreters can utilize several techniques for implementing threaded code, and these techniques are classified to better understand the mechanisms underlying "threaded interpretive languages", or TILs.
Efficient implementation of the smalltalk-80 system
- Computer SciencePOPL '84
- 1984
The most significant optimization techniques developed over the course of the Smalltalk-80 programming system are discussed, many of which are applicable to other languages.
The Java HotSpotTM Server Compiler
- Computer Science
- 2001
The Java HotSpot TM Server Compiler achieves improved asymptotic performance through a combination of ob− ject−oriented and classical−compiler optimizations. Aggressive inlining using class−hierarchy…