A Status Update of BEAMJIT, the Just-in-Time Compiling Abstract Machine

Frej Drejhammar
Researcher at SICS

The reference implementation of the Erlang programming language includes an emulator for the Erlang abstract machine, called BEAM. We are developing an LLVM-based tracing just-in-time compiler for Erlang, called BEAMJIT. BEAMJIT uses the LLVM component libClang to analyze and extract the semantics of the BEAM instructions from the C-implementation of BEAM. BEAMJIT then synthesizes an abstract machine with support for tracing, a BEAM-trace-to-IR code generator, and extends BEAM to collect, compile and run traces.

This talk will provide a brief overview to the just-in-time compiler followed by a walk-through of last year's development. Since last year's talk about BEAMJIT at the EUC, the BEAMJIT prototype has acquired a number of performance enhancing features. Apart from a few degenerate examples which triggers weaknesses in BEAMJIT, single core BEAMJIT now consistently outperforms the reference implementation.

Talk objectives:

Update the Erlang community on the progress of the just-in-time compiling runtime for Erlang.

Target audience:

Developers interested in source-to-source transformations, virtual-machine implementation and optimization.


Frej Drejhammar received his M.Sc. degree in Computer Science from the Royal Institute of Technology (KTH), Sweden in 2001 followed by a Ph.Lic. from the same institution in 2005. He is currently a senior researcher at the Swedish Institute of Computer Science (SICS) in Kista, Sweden. His research interests are programming languages, protocols and tools for reliable and distributed computer systems.

Back to conference page