Proceedings of the 16th ACM SIGPLAN International Symposium on Dynamic Languages 2020
DOI: 10.1145/3426422.3426977
|View full text |Cite
|
Sign up to set email alerts
|

Amalgamating different JIT compilations in a meta-tracing JIT compiler framework

Abstract: Most virtual machines employ just-in-time (JIT) compilers to achieve high-performance. Trace-based compilation and method-based compilation are two major compilation strategies in JIT compilers. In general, the former excels in compiling programs with more in-depth method calls and more dynamic branches, while the latter is suitable for a wide range of programs. Some previous studies have suggested that each strategy has its advantages and disadvantages,and there is no clear winner. In this paper, we present a… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
3
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
1
1
1

Relationship

2
1

Authors

Journals

citations
Cited by 3 publications
(4 citation statements)
references
References 26 publications
0
3
0
Order By: Relevance
“…Its hybrid JIT compiler can use both strategies in a single framework, since we constructed the two strategies by extending a (meta-) tracing JIT compiler. We found that there existed programs which ran faster by a hybrid strategy than others, but there was a room for further improvements and production-level experiments since our BacCaml framework [10] is still proof-of-concept.…”
mentioning
confidence: 92%
See 2 more Smart Citations
“…Its hybrid JIT compiler can use both strategies in a single framework, since we constructed the two strategies by extending a (meta-) tracing JIT compiler. We found that there existed programs which ran faster by a hybrid strategy than others, but there was a room for further improvements and production-level experiments since our BacCaml framework [10] is still proof-of-concept.…”
mentioning
confidence: 92%
“…It is because RPython and Truffle/Graal support only a single strategy; RPython generates tracebased, while Truffle/Graal generates a method-based JIT compiler. However, the two strategies have its own advantages and disadvantages [7,8,10,12], thus language developers have to carefully choose which one is better for the language they are going to realize beforehand.…”
mentioning
confidence: 99%
See 1 more Smart Citation
“…The proposal of the paper is positioned as an application of our meta-hybrid JIT compiler framework project (Izawa & Masuhara 2020) to a production-level language implementation framework, namely the RPython-backend for PyPy (Rigo & Pedroni 2006) in the context of threaded code generation. In contrast to our original proposal (Izawa & Masuhara 2020) that is based on a simple experimental language implementation framework, this paper realizes threaded code generation on a production level language implementation framework by mostly reusing the existing implementation that does not consider threaded code generation or other levels of optimization at all. In other words, this approach doesn't need to modify the RPython's compilation engine too much, but we realize it just by preparing a specific interpreter definition and implement a new trace compilation engine that share almost all the code base (details are explained in Section 3).…”
Section: Introductionmentioning
confidence: 99%