LLVM Clang 15 Delivers Some Small x86_64 Performance Improvements But Mostly Flat
Released last month was LLVM/Clang 15 and since then a number of Phoronix readers have been inquiring about Clang 15 compiler benchmarks or there the lack of on Phoronix. I've been testing various Intel and AMD systems with Clang 15, but it hasn't been particularly exciting -- but that's not a bad thing, just that it doesn't make for particularly compelling benchmark articles.
LLVM Clang on x86_64 and AArch64 has been at the point of being rather mature and less significant optimizations to squeeze out of each new release compared to years ago when LLVM was still playing the catch-up game against other compilers. These days LLVM Clang delivers just as good code (or better) than the likes of GCC and other compiler alternatives. So from the performance perspective, it's gotten rather boring except for cases of targeted CPU tuning or new instruction capabilities being added. But as a whole when looking at the C/C++ performance of LLVM Clang 14 vs. Clang 15, across all my testing on different Intel and AMD boxes it's been mostly flat.
In taking a Ryzen 9 5950X Clang 14 vs. 15 comparison for reference and ignoring the many workloads with no measurable difference between the runs, I am left with:
There are some minor improvements to find with Clang 15 built binaries for some benchmarks but is much less so than in the earlier days of Clang working to catch-up to GCC.
In close to 100 different C/C++ benchmarks on that particular box, the overall geo mean came about to about the same.
Of course, outside of the compiler performance there has been new C/C++ features being implemented, work on sanitizers and improved compiler warnings/errors, new targets added, and plenty of other open-source compiler innovations happening. So that's the short story why there hasn't been any big multi-page articles on Clang 15 performance is since it's been a stable but largely unchanged experience for the open-source programs I commonly use for compiler testing and across the various systems/CPUs I routinely test. If you do encounter anything of interest in your own Clang compiler testing around performance, be sure to share in the forums or on Twitter.
LLVM Clang on x86_64 and AArch64 has been at the point of being rather mature and less significant optimizations to squeeze out of each new release compared to years ago when LLVM was still playing the catch-up game against other compilers. These days LLVM Clang delivers just as good code (or better) than the likes of GCC and other compiler alternatives. So from the performance perspective, it's gotten rather boring except for cases of targeted CPU tuning or new instruction capabilities being added. But as a whole when looking at the C/C++ performance of LLVM Clang 14 vs. Clang 15, across all my testing on different Intel and AMD boxes it's been mostly flat.
In taking a Ryzen 9 5950X Clang 14 vs. 15 comparison for reference and ignoring the many workloads with no measurable difference between the runs, I am left with:
There are some minor improvements to find with Clang 15 built binaries for some benchmarks but is much less so than in the earlier days of Clang working to catch-up to GCC.
In close to 100 different C/C++ benchmarks on that particular box, the overall geo mean came about to about the same.
Of course, outside of the compiler performance there has been new C/C++ features being implemented, work on sanitizers and improved compiler warnings/errors, new targets added, and plenty of other open-source compiler innovations happening. So that's the short story why there hasn't been any big multi-page articles on Clang 15 performance is since it's been a stable but largely unchanged experience for the open-source programs I commonly use for compiler testing and across the various systems/CPUs I routinely test. If you do encounter anything of interest in your own Clang compiler testing around performance, be sure to share in the forums or on Twitter.
4 Comments