Falcon is a new JIT compiler for Zing JVM that replaces C2 compiler. The new compiler, which is based on LLVM, is here to improve the peak performance of Java code.
LLVM is typically used for C/C++ static compilation, so we at Azul Systems had to do a lot of work to make LLVM compile Java code efficiently. We'll talk about the difference between C/C++ static compiler and Java JIT compiler, and also will examine supporting GC, deoptimizations and Java specific optimizations in LLVM.
Development of a new compiler is a big and ambitious task. We'll explain why it was preferred to develop a new compiler instead of improving C2, and we'll show by example how Falcon makes Java code run faster.
Artur Pilipenko, Azul Systems
Engineer in the compiling team at Azul Systems company. During the last two years has been taking part in the development of the LLVM-based JIT compiler Falcon. Before Azul Systems used to work at Oracle, where he was developing the CLDC HI virtual machine (aka Monty VM).