GCC vs. LLVM/Clang Compilers On ARMv7 Linux
While comparing compiler performance of different Linux code compilers on different software stacks and hardware configurations is nothing new at all to Phoronix, usually it's done on x86 hardware. However, with ARM hardware becoming increasingly common and much more powerful, here's a comparison of the GCC and LLVM/Clang compilers on a dual-core ARM development board.
This latest ARMv7 Linux benchmarking builds upon the Ubuntu 12.04 ARM benchmarks shared on Monday of the PandaBoard ES with its OMAP4460 dual-core Cortex-A9 SoC. The Texas Instruments hardware was running with 1GB of RAM and 16GB SDHC storage. The results today are using Ubuntu 12.04 with its ARMv7 Linux 3.2 kernel and comparing the performance of GCC 4.6 and LLVM/Clang 3.0 as found in the Ubuntu 12.04 Precise repository.
With CacheBench, when built by GCC 4.6 on the OMAP4460 on the device itself, the binaries were much faster than the ones produced by LLVM/Clang 3.0 except for the pure write test.
LLVM/Clang on ARM was also much slower for the C-written SciMark than using the Apple-sponsored Clang.
TSCP at least didn't lose as badly when built by Clang. 7-Zip also performed more closely between these two popular compilers.
N-Queens finally produced a win for LLVM/Clang.
LLVM/Clang still doesn't have support for OpenMP. More result data from this GCC vs. LLVM/Clang compiler comparison on ARM can be found on OpenBenchmarking.org (though ignore the Fortran FFTE test that accidentally slipped in there). LLVM/Clang on this dual-core OMAP4460 SoC was much less competitive than GCC 4.6, though it will be interesting to do this comparison with GCC 4.7 and the forthcoming LLVM/Clang 3.1. I'll also run some compiler benchmarks from the quad-core NVIDIA Tegra 3 ARM tablet.
On the ARM side, there is great interest with LLVM/Clang. Qualcomm is even trying to use Clang to build an ARM Linux kernel and other software with the LLVM-based compiler rather than GCC. Going forward the ARM Clang performance on Linux should certainly improve.
For some x86 compiler comparison numbers, see the AMD FX-8150 Bulldozer results and a comparison earlier this week of LLVM/Clang 3.0/3.1 vs. GCC 4.6/4.7 compiler four-way.
This latest ARMv7 Linux benchmarking builds upon the Ubuntu 12.04 ARM benchmarks shared on Monday of the PandaBoard ES with its OMAP4460 dual-core Cortex-A9 SoC. The Texas Instruments hardware was running with 1GB of RAM and 16GB SDHC storage. The results today are using Ubuntu 12.04 with its ARMv7 Linux 3.2 kernel and comparing the performance of GCC 4.6 and LLVM/Clang 3.0 as found in the Ubuntu 12.04 Precise repository.
With CacheBench, when built by GCC 4.6 on the OMAP4460 on the device itself, the binaries were much faster than the ones produced by LLVM/Clang 3.0 except for the pure write test.
LLVM/Clang on ARM was also much slower for the C-written SciMark than using the Apple-sponsored Clang.
TSCP at least didn't lose as badly when built by Clang. 7-Zip also performed more closely between these two popular compilers.
N-Queens finally produced a win for LLVM/Clang.
LLVM/Clang still doesn't have support for OpenMP. More result data from this GCC vs. LLVM/Clang compiler comparison on ARM can be found on OpenBenchmarking.org (though ignore the Fortran FFTE test that accidentally slipped in there). LLVM/Clang on this dual-core OMAP4460 SoC was much less competitive than GCC 4.6, though it will be interesting to do this comparison with GCC 4.7 and the forthcoming LLVM/Clang 3.1. I'll also run some compiler benchmarks from the quad-core NVIDIA Tegra 3 ARM tablet.
On the ARM side, there is great interest with LLVM/Clang. Qualcomm is even trying to use Clang to build an ARM Linux kernel and other software with the LLVM-based compiler rather than GCC. Going forward the ARM Clang performance on Linux should certainly improve.
For some x86 compiler comparison numbers, see the AMD FX-8150 Bulldozer results and a comparison earlier this week of LLVM/Clang 3.0/3.1 vs. GCC 4.6/4.7 compiler four-way.
3 Comments