Drejhammar, Frej and Rasmusson, Lars (2014) BEAMJIT: a just-in-time compiling runtime for Erlang. In: The Thirteenth ACM SIGPLAN Workshop on Erlang, 1-3 September 2014, Gothenburg, Sweden.
|PDF - Published Version|
Official URL: http://dx.doi.org/10.1145/2633448.2633450
BEAMJIT is a tracing just-in-time compiling runtime for the Erlang programming language. The core parts of BEAMJIT are synthesized from the C source code of BEAM, the reference Erlang abstract machine. The source code for BEAM's instructions is extracted automatically from BEAM's emulator loop. A tracing version of the abstract machine, as well as a code generator are synthesized. BEAMJIT uses the LLVM toolkit for optimization and native code emission. The automatic synthesis process greatly reduces the amount of manual work required to maintain a just-in-time compiler as it automatically tracks the BEAM system. The performance is evaluated with HiPE's, the Erlang ahead-of-time native compiler, benchmark suite. For most benchmarks BEAMJIT delivers a performance improvement compared to BEAM, although in some cases, with known causes, it fails to deliver a performance boost. BEAMJIT does not yet match the performance of HiPE mainly because it does not yet implement Erlang specific optimizations such as boxing/unboxing elimination and a deep understanding of BIFs. Despite this BEAMJIT, for some benchmarks, reduces the runtime with up to 40\%.
|Item Type:||Conference or Workshop Item (Paper)|
|Deposited By:||Frej Drejhammar|
|Deposited On:||13 Nov 2014 12:54|
|Last Modified:||13 Nov 2014 12:54|
Repository Staff Only: item control page