AMD Releases Optimizing C/C++ Compiler For Ryzen
Longtime Phoronix readers and AMD Linux enthusiasts probably remember the AMD Open64 compiler for past CPU launches with various compiler optimizations for AMD processors. With Open64 being dead and all the compiler rage these days about LLVM/Clang, AMD has announced the "AMD Optimizing C/C++ Compiler" (AOCC) that's based upon Clang and optimized for Ryzen/Zen processors.
AMD this week has rolled out AOCC 1.0 as their first compiler optimized for Zen. LLVM Clang as well as GCC have offered mainline support for Ryzen via znver1 but AMD hadn't contributed a scheduler model yet for this upstream compiler support. Now they have out AOCC 1.0 for those wanting further optimized Zen binaries.
AOCC 1.0 is focused on Zen/17h processor support and reportedly offers improved vectorization, higher-level optimizer, and better code generation. AOCC also supports Fortran codes via the DragonEgg LLVM plug-in for integration with GCC. These various AMD optimizations are patched atop LLVM Clang 4.0. AMD has also released an AOCC optimized version of the Gold linker.
Download links for this AMD Optimizing C/C++ Compiler can be found via developer.amd.com. I haven't yet tested it but will be doing some fresh Ryzen GCC/Clang/AOCC benchmarks now this week.
The support for DragonEgg for AMD-optimized Fortran is interesting since upstream DragonEgg has basically been unmaintained for a while. This AOCC DragonEgg will also only work with the (now rather older) GCC 4.8.2 compiler.
Hopefully AMD will be able to upstream their relevant AOCC patches to LLVM/Clang in the near future... As of writing I haven't seen a source tree yet of the AOCC changes. With the AOCC binaries, they are still named "clang" for an easy drop-in replacement on Linux systems.
AMD this week has rolled out AOCC 1.0 as their first compiler optimized for Zen. LLVM Clang as well as GCC have offered mainline support for Ryzen via znver1 but AMD hadn't contributed a scheduler model yet for this upstream compiler support. Now they have out AOCC 1.0 for those wanting further optimized Zen binaries.
AOCC 1.0 is focused on Zen/17h processor support and reportedly offers improved vectorization, higher-level optimizer, and better code generation. AOCC also supports Fortran codes via the DragonEgg LLVM plug-in for integration with GCC. These various AMD optimizations are patched atop LLVM Clang 4.0. AMD has also released an AOCC optimized version of the Gold linker.
Download links for this AMD Optimizing C/C++ Compiler can be found via developer.amd.com. I haven't yet tested it but will be doing some fresh Ryzen GCC/Clang/AOCC benchmarks now this week.
The support for DragonEgg for AMD-optimized Fortran is interesting since upstream DragonEgg has basically been unmaintained for a while. This AOCC DragonEgg will also only work with the (now rather older) GCC 4.8.2 compiler.
Hopefully AMD will be able to upstream their relevant AOCC patches to LLVM/Clang in the near future... As of writing I haven't seen a source tree yet of the AOCC changes. With the AOCC binaries, they are still named "clang" for an easy drop-in replacement on Linux systems.
61 Comments