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.
Update the Erlang community on the progress of the just-in-time compiling runtime for Erlang.
Developers interested in source-to-source transformations, virtual-machine implementation and optimization.
Slides
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.