ErLLVM


By Erlang Central | Published: May 28, 2012



This talk will describe the architecture, design decisions, and the current implementation and performance of ErLLVM. ErLLVM is an extension of the HiPE native code compiler of Erlang/OTP that uses the Low Level Virtual Machine (LLVM) compiler infrastructure as a back-end. As such, it benefits from the set of existing components and low-level optimizations that LLVM provides. More importantly, it is in principle readily available on all platforms that LLVM supports.
ErLLVM is a full system currently available as open-source and has been tested on x86 and x86_64 based machines running Linux. It supports the complete Erlang language and to the best of our knowledge is robust enough for others to try. We are also currently working on an ARM backend. We welcome user feedback, experiences and support!
Talk objectives: Introduce ErLLVM and present its salient features and current performance.
Target audience: Erlang programmers in need for speed.
Download Presentation Download

Speakers:

  • Kostis Sagonas

    Leader of the HiPE team and Erlang tool developer
    Uppsala University and National Technical University of Athens

    Kostis Sagonas is an academic who has been heavily involved in the development of Erlang and its implementation since 1999. At Uppsala University, he has led the development team of the HiPE native code compiler that nowadays is part of Erlang/OTP. Together with his students, first at Uppsala University and more recently at the National Technical University of Athens, he has proposed various changes and additions to the language (most notably, bit-level pattern matching and bit-stream comprehensions, and the language of type and spec declarations), and has contributed to its compiler and runtime system. Besides HiPE, he has designed and implemented software development tools for Erlang (dialyzer, typer, tidier, proper, ...) and has contributed bug fixes to many open-source Erlang projects.




    Kostis Sagonas


Follow Erlang Central:


Have an Erlang Question?

Reach out to the Erlang community





Tags