Graal is a dynamic compiler that integrates with the HotSpot JVM and converts Java bytecode to native machine code at runtime. It can be a replacement of the C2 compiler in Hotspot with the basic advantage that Graal is written in Java rather than C++, which makes it probably safety and easier to maintain and extend. Besides, Graal compiler has a focus on high performance so its also a big part of what makes Java as faster as it is.
Currently Graal has added many optimization mechanisms like speculative optimizations, inlining, partial escape analysis, lowering snippets, etc. Even so, compared to the C2 compiler, Graal still lose some optimizations and new features of OpenJDK especially for AArch64. Its performance could be better.
This presentation explores the status of Graal Optimization on AArch64, together with the performance data of some benchmarks. Some of the focus is on the recent changes and the improvement in AArch64 port which Arm contributes to. Some of the future works may also be introduced.
Xiaohong Gong (Arm Technology China)