GCC 8/9 vs. LLVM Clang 7/8 Compiler Performance On AArch64

Written by Michael Larabel in Software on 12 February 2019 at 03:35 PM EST. Page 1 of 4. 20 Comments.

With Clang 8.0 due out by month's end and GCC 9 due for release not long after that point, this week we've been running a number of GCC and Clang compiler benchmarks on Phoronix. At the start of the month was the large Linux x86_64 GCC vs. Clang compiler benchmarks on twelve different Intel/AMD systems while last week was also a look at the POWER9 compiler performance on the Raptor Talos II. In this article we are checking out these open-source compilers' performance on 64-bit ARM (AArch64) using an Ampere eMAG 32-core server.

For rounding out our look at the GCC performance across various architectures, for the ARMv8 compiler benchmarking I was using the Ampere eMAG 3.0GHz 32-core server that is the most interesting 64-bit ARM server we have available locally for testing. Fedora Server 29 AArch64 also loaded up nicely on this eMAG server for having a fresh toolchain and other software packages. This server had 128GB of RAM and a Samsung 850 256GB SSD for storage while the Fedora 29 installation updated led it to running off the fresh Linux 4.20 kernel.

Like with the other compiler comparisons this month, GCC 8.2.0, GCC 9.0.1 (snapshot 20190203, ahead of the stable GCC 9.1.0 release), LLVM Clang 7.0.1, and LLVM Clang 8.0-RC2 were used for benchmarking. All four of these compilers were built on this Ampere eMAG server and built in their release/optimized (non-debug) modes.

During the various benchmarks driven via the Phoronix Test Suite, the CFLAGS/CXXFLAGS were set to "-O3 -march=armv8-a+crypto+crc+aes+sha2" (the -march=native functionality seems to have regressed for GCC9 on AArch64, thus specifying these options manually for testing). Now let's see how the GCC vs. Clang AArch64 Linux performance is looking across dozens of benchmarks.


Related Articles