GCC 4.8 vs. LLVM/Clang 3.3 On Intel's Core i7 4770K

Written by Michael Larabel in Software on 21 June 2013 at 01:50 AM EDT. Page 1 of 3. 14 Comments.

Complementing the earlier Phoronix article about optimized binaries for Intel Haswell CPUs via the "-march=core-avx2" Haswell compiler optimizations, in this article is a comparison of the GCC and LLVM/Clang compilers when targeting the new Core i7 4770K CPU. GCC 4.7.3, GCC 4.8.1, LLVM Clang 3.2, and LLVM Clang 3.3 were the tested compilers under Ubuntu Linux when seeing how well these different compilers optimized for Haswell.

For this testing, GCC 4.7.3/4.8.1 and LLVM Clang 3.2/3.3 were all built from source and using similar configure options for producing release-ready optimized builds. A variety of open-source C/C++ tests were carried out on the competing compilers while using the same CFLAGS/CXXFLAGS across all of the testing. All benchmarking was handled in a fully automated and reproducible manner using the Phoronix Test Suite benchmarking software for Linux, OS X, BSD, Solaris, and Windows platforms.

The CFLAGS/CXXFLAGS set for the environment were "-O3 -march=core-avx2". In Terms of the core-avx2 optimizations, see the earlier article on optimized binaries for Haswell. Both GCC 4.7 and LLVM Clang 3.2 had early support for Intel Haswell CPUs, but the support is now much more polished in the latest releases of GCC 4.8 and LLVM Clang 3.3.

This compiler comparison and testing is quite straightforward so let's get immediately to the results from this Core i7 4770K system running an Ubuntu 13.10 development snapshot with the Linux 3.10 kernel.

Related Articles