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 new approach, namely, the meta-hybrid JIT compilation strategy, mixing the two strategies in a meta-tracing JIT compiler. As a prototype, we implemented a simple meta-tracing JIT compiler framework called BacCaml based on the MinCaml compiler by following RPython's architecture. We also report that some programs ran faster by the hybrid compilation in our experiments.
Reference:
Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (Yusuke Izawa and Hidehiko Masuhara), In Proceedings of the 16th ACM SIGPLAN International Symposium on Dynamic Language (DLS'20) (Matthew Flatt, ed.), 2020.
Bibtex Entry:
@inproceedings{izawa2020dls,
author = {Yusuke Izawa and Hidehiko Masuhara},
title = {Amalgamating Different {JIT} Compilations in a Meta-tracing {JIT} Compiler Framework},
booktitle = {Proceedings of the 16th ACM SIGPLAN International Symposium on Dynamic Language (DLS'20)},
editor = {Matthew Flatt},
acceptanceratio = {9/14(64\%)},
year = 2020,
optvolume = {TBA},
optnumber = {TBA},
doi = {10.1145/3426422.3426977},
pages = {1--15},
pdf = {dls2020.pdf},
url = {https://conf.researchr.org/home/dls-2020},
month = nov,
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 new approach, namely, the meta-hybrid JIT compilation strategy, mixing the two strategies in a meta-tracing JIT compiler. As a prototype, we implemented a simple meta-tracing JIT compiler framework called BacCaml based on the MinCaml compiler by following RPython's architecture. We also report that some programs ran faster by the hybrid compilation in our experiments.}
}