AMD Bulldozer With GCC, Open64, LLVM/Clang Compilers
Now having looked at the AMD Bulldozer FX-8150 performance on Linux, as well as how it's scaling across multiple cores/modules, in this article are results when building a variety of benchmarks under the popular compilers. The tested compilers were GCC, LLVM/Clang, and AMD Open64, including different revisions of these open-source compilers.
From the AMD FX-8150 octal-core Bulldozer setup running Ubuntu 11.10 64-bit, the GCC 4.6.1, GCC 4.7-20111015, LLVM/Clang 3.0 (SVN 142590), Open64 4.2.4, and AMD Open64 184.108.40.206 compilers were benchmarked.
GCC 4.6.1 was the latest stable GNU Compiler Collection release at the time of testing (GCC 4.6.2 is now available with various bug-fixes). GCC 4.7-20111015 was the latest snapshot for GCC 4.7.0 available at the time of testing, which is still in stage one of development and will be officially released in the next few months. LLVM/Clang 3.0 is being officially released in early November and the tested SVN revision is a near-final version of this Apple-sponsored compiler infrastructure that is becoming immensely popular. Open64 4.2.4 is the latest open-source Open64 release available from the project's web-site while there is an Open64 220.127.116.11 release available from AMD's web-site that offers more Bulldozer optimizations, among other work.
The GCC releases were built with --enable-release=checking and LLVM/Clang was compiled with --enable-optimized and --disable-assertions, to mirror release builds. The Open64 compilers were using the 64-bit binaries.
With each different compiler tested, the Phoronix Test Suite rebuilt all of these C/C++ benchmarks each time before execution. The rest of the system stack remained the same. For this article, all tests were built with their stock compiler flags, but in another Bulldozer compiler article is a look at compiler tuning for Bulldozer-specific optimizations along with other flags.