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 language implementation 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 top of RPython.
翻译:语言执行框架,如Rpython和Truffle/Graal等语言执行框架,是创造高性能语言的有效工具,从头开始执行的努力比执行要低。这两个框架只支持一个单一的JIT汇编战略,即基于追踪的汇编和基于方法的汇编,但也有其自身的优缺点。我们提出了一个超统性 JIT汇编框架,以利用这两个战略作为语言执行框架。我们还实施了称为BacCaml的概念验证框架。作为下一步,我们在本立场文件中提出了一种新办法,即实现基于方法的JIT基准汇编,同时实现基于追踪的JIT汇编。我们的目标是通过防止造成严重减速的路径发展速度问题来进一步加快速度。我们还展示了如何在Rpython顶部实施基本JIT汇编,同时进行最小的改动。