Stability and functional consistency are what Java machines’ users usually expect, along with the fast work of the code they’ve compiled. For this very purpose, there are compiler optimizations, but the more aggressive they improve the code, the more problems can sneak in.
So how can we bring together such controversial goals as speed and consistency of the compiled code? Especially if your compiler is based on LLVM and tens of thousands of changed code lines are added to it every week? How to find hidden bugs before any user runs into one of them?
In this talk we’ll share how we look for functional problems in the compiler of Zing Java machine, using automatic generator of test programs on Java.
Compiler engineer at Azul Systems. For the last 4 years is into optimizing JIT compilers for virtual machines. Since 2017 works on Zing VM, actively commits to LLVM. Before that used to work with ART and Dalvik virtual machines at Intel, along with contributing to Android Open Source Project.