SODA

BEAMJIT: a just-in-time compiling runtime for Erlang

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.

[img]
Preview
PDF - Published Version
566Kb

Official URL: http://dx.doi.org/10.1145/2633448.2633450

Abstract

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)
ID Code:5749
Deposited By:Frej Drejhammar
Deposited On:13 Nov 2014 12:54
Last Modified:13 Nov 2014 12:54

Repository Staff Only: item control page