HiPE version 1.0 Kostis Sagonas Uppsala University
Structure of this talk
1. Recent past
2. Present
3. Near future
Part 1: Recent Past
Historical introduction
During the last few years, the following people:
Erik “Happi” Johansson
Mikael Pettersson
Richard Carlsson
Kostis Sagonas
have been having fun developing and maintaining the HiPE system...
HiPE: High Performance Erlang
A “just-in-time” native code compiler for Erlang
Allows flexible , user-controlled compilation of Erlang programs to native machine code
Fine-grained: Compilation unit is a single function
HiPE 0.92 released as open-source in March 2000 (see also www.csd.uu.se/projects/hipe )
Released version was JAM-based (Erlang R4)
Available only for SPARC machines
HiPE: Technical Details
Both virtual machine code and native code can happily co-exist in the runtime system
HiPE optimizes calls to functions which execute in the same mode
Preserves tail-calls
The generated native code is quite efficient
HiPE significantly outperforms all other Erlang implementations
has similar performance to e.g. Concurrent SML/NJ
Old HiPE Architecture Erlang Run-Time System HiPE Compiler JAM Emulator Code area JAM Dissassembler HiPE Loader JAM Bytecode Other Data Native Code Symbolic JAM Icode RTL SPARC The HiPE system
Speedup of HiPE (0.92) over other Erlang implementations
Success of HiPE: Let’s take a quick poll...
Who has used HiPE ?
My educated guess: A few…
Who is using HiPE instead of using Erlang/OTP ?
Most probable answer: None!
Part 2: Present
HiPE version 1.0: The current HiPE team
At Uppsala University:
Erik “Happi” Johansson
Mikael Pettersson
Richard Carlsson
Kostis Sagonas
+
Jesper Wilhelmsson
Recent addition from the Erlang/OTP team:
Bjorn Gustavsson
HiPE version 1.0: Main Features of Interest
HiPE is fully and tightly integrated within Open Source Erlang/OTP Release 8
Handles the full Erlang language
Back-ends for:
SPARC
x86-based machines running Linux or Solaris
Usually very reasonable compilation times
Acceptable sizes of object code
New HiPE Architecture Erlang Run-Time System HiPE Compiler BEAM Emulator Code area BEAM Dissassembler HiPE Loader BEAM Bytecode Other Data Native Code Symbolic BEAM Icode RTL SPARC X86 A HiPE-enabled Erlang/OTP system
0 comments
Post a comment