LLVM Clang 6.0 vs. 5.0 Compiler Performance On Intel/AMD Linux
Since last week's big release of LLVM 6.0 along with Clang 6.0, I have been carrying out some fresh compiler benchmarks of the previous Clang 5.0 to this new stable release that switches to C++14 by default, among many other changes to LLVM itself and this C/C++ compiler front-end.
For your compiler benchmark viewing pleasure today are results of LLVM Clang 5.0 vs. 6.0 on four distinctly different systems: two Intel, two AMD, for getting a glimpse at how the Clang 6.0 compiler performance is looking at this time. For those wondering how Clang 6.0 is stacking up compared to the soon-to-be-released GCC 8.1 compiler, those benchmarks will come when GCC 8.1 is officially available.
The four different systems were all running Ubuntu Linux x86_64 and featured an Intel Core i7 8700K (Coffeelake), dual Xeon Gold 6138 (Skylake X), Ryzen 7 1700 (Znver1), and AMD EPYC 7601 (Znver1) for a look at the modern Intel/AMD processor performance with the binaries generated under these different LLVM/Clang releases.
Besides now defaulting to C++14/GNU++14, Clang 6.0 officially finished up the AMD Zen "znver1" scheduler model and there were also scheduler improvements too on the Intel side for multiple CPU generations. Learn more about some of the compiler changes in LLVM 6.0 via our feature overview.
LLVM 5.0.1 and LLVM 6.0.0 stable were obtained from the apt.llvm.org archive for easily reproducible builds by others. During testing each system had their CFLAGS/CXXFLAGS set to "-O3 -march=native." These compiler benchmarks on these different systems were carried out using the open-source Phoronix Test Suite benchmarking software.