Abstract:
Language implementation frameworks such as RPython and Truffle/Graal are effective tools for creating a high-performance language with lower effort than implementing from scratch. The two frameworks support only a single JIT compilation strategy, trace-based compilation, and method-based compilation, but they have its own advantages and disadvantages. We proposed a meta-hybrid JIT compiler framework to take advantages of the two strategies as a meta-tracing JIT compiler framework. We also implemented a proof-of-concept framework called BacCaml. As a next step, in this position paper, we propose a new approach to realize a method-based baseline JIT compiler along with a trace-based JIT compilation. We aim to use it for further speed-up by preventing the path-divergence problem, which causes serious slow-down. We also show how to implement the baseline JIT compiler with minimal changes on the top of RPython.
Reference:
Threaded Code Generation with a Meta-tracing JIT Compiler (Yusuke Izawa, Hidehiko Masuhara, Carl Friedrich Bolz-Tereick and Youyou Cong), Talk at ICOOOLPS 2021, 2021. (Position paper is archived as arXiv:2106.12496. Revised article appears in JOT [izawa2022jot-icooolps].)
Bibtex Entry:
@misc{izawa2021icooolps,
author = {Yusuke Izawa and Hidehiko Masuhara and {Carl Friedrich} Bolz-Tereick and Youyou Cong},
title = {Threaded Code Generation with a Meta-tracing {JIT} Compiler},
howpublished = {Talk at ICOOOLPS 2021},
month = jul,
year = 2021,
date = {2021-07-13},
abstract = {Language implementation frameworks such as RPython and Truffle/Graal are effective tools for creating a high-performance language with lower effort than implementing from scratch. The two frameworks support only a single JIT compilation strategy, trace-based compilation, and method-based compilation, but they have its own advantages and disadvantages. We proposed a meta-hybrid JIT compiler framework to take advantages of the two strategies as a meta-tracing JIT compiler framework. We also implemented a proof-of-concept framework called BacCaml. As a next step, in this position paper, we propose a new approach to realize a method-based baseline JIT compiler along with a trace-based JIT compilation. We aim to use it for further speed-up by preventing the path-divergence problem, which causes serious slow-down. We also show how to implement the baseline JIT compiler with minimal changes on the top of RPython. },
note = {Position paper is archived as arXiv:2106.12496. Revised article appears in JOT \cite{izawa2022jot-icooolps}.},
pdf = {icooolps2021.pdf},
url = {https://conf.researchr.org/details/issta-2021/ecoop-issta-2021-icooolps/3/Threaded-Code-Generation-with-a-Meta-tracing-JIT-Compiler}
}