Deegen:一款面向动态语言的JIT虚拟机生成器

2024-11-24

Deegen是一个元编译器,可以自动生成带有JIT功能的高性能虚拟机,用于动态语言。用户只需以C++函数的形式提供字节码的执行语义,Deegen即可生成包含解释器、基准JIT编译器和tier-switching逻辑的双层VM执行引擎。Deegen生成的解释器性能优于现有技术水平,并且首次实现了JIT编译器的自动生成。通过字节码特化、寄存器 pinning、内联缓存等多种优化,Deegen生成的代码质量可与专家手写的汇编代码媲美。使用Deegen实现的LuaJIT Remake (LJR) 在44个基准测试中,解释器性能比官方PUC Lua解释器快179%,比LuaJIT解释器快31%;基准JIT启动延迟极低,执行性能比PUC Lua快360%,仅比LuaJIT的优化JIT慢33%,甚至在13个基准测试中更快。

7