Clang Compiling Against GCC On Ubuntu ARM Linux
Here's an update on the LLVM/Clang vs. GCC compiler benchmarking on ARM hardware under Linux.
Last month on Phoronix I shared a few basic benchmarks of GCC vs. LLVM/Clang Compilers On ARMv7 Linux. GCC 4.6.3 on Ubuntu 12.04 was doing much better than LLVM/Clang 3.0 from the Precise repository. As was realized after the fact, LLVM/Clang on ARM Linux isn't auto-detecting the processor. GCC on ARM Linux, meanwhile, was able to recognize the dual-core ARM Cortex-A9. Therefore GCC does much better "out of the box" in a standard configuration like most Linux end-users would build their software.
Thanks to the public pressure, Apple/LLVM looks like they're now working for ARM target auto-detection so that we get functionality similar to GCC on ARM Linux or x86: Request for Help: Teach ARM target to auto-detect cpu / subtarget features. This is a current deficiency of LLVM on ARM.
For those interested, below are some updated ARM compiler benchmarks under Linux. In this article is a development snapshot of Ubuntu 12.10 while testing GCC 4.7.0 and LLVM/Clang 3.0. The benchmarking was still being done from a PandaBoard ES with Texas Instruments OMAP4460 dual-core ARM Cortex-A9 development board. Via the CFLAGS/CXXFLAGS, -march=armv7-a was passed to each compiler.
GCC 4.7 has a small advantage over LLVM/Clang 3.0 in the TSCP chess computational benchmark.
7-Zip compression on the Texas Instruments' PandaBoard ES is now faster with the LLVM/Clang compiler than the latest GCC release.
GCC is still superior for the multi-core C-Ray ray-tracing benchmark.
Additional information is available via OpenBenchmarking.org. You can also compare your x86/ARM performance with these benchmarks to the ARMv7 results by running phoronix-test-suite benchmark 1206060-SU-LLVMCLANG78. More tests are forthcoming.
Last month on Phoronix I shared a few basic benchmarks of GCC vs. LLVM/Clang Compilers On ARMv7 Linux. GCC 4.6.3 on Ubuntu 12.04 was doing much better than LLVM/Clang 3.0 from the Precise repository. As was realized after the fact, LLVM/Clang on ARM Linux isn't auto-detecting the processor. GCC on ARM Linux, meanwhile, was able to recognize the dual-core ARM Cortex-A9. Therefore GCC does much better "out of the box" in a standard configuration like most Linux end-users would build their software.
Thanks to the public pressure, Apple/LLVM looks like they're now working for ARM target auto-detection so that we get functionality similar to GCC on ARM Linux or x86: Request for Help: Teach ARM target to auto-detect cpu / subtarget features. This is a current deficiency of LLVM on ARM.
For those interested, below are some updated ARM compiler benchmarks under Linux. In this article is a development snapshot of Ubuntu 12.10 while testing GCC 4.7.0 and LLVM/Clang 3.0. The benchmarking was still being done from a PandaBoard ES with Texas Instruments OMAP4460 dual-core ARM Cortex-A9 development board. Via the CFLAGS/CXXFLAGS, -march=armv7-a was passed to each compiler.
GCC 4.7 has a small advantage over LLVM/Clang 3.0 in the TSCP chess computational benchmark.
7-Zip compression on the Texas Instruments' PandaBoard ES is now faster with the LLVM/Clang compiler than the latest GCC release.
GCC is still superior for the multi-core C-Ray ray-tracing benchmark.
Additional information is available via OpenBenchmarking.org. You can also compare your x86/ARM performance with these benchmarks to the ARMv7 results by running phoronix-test-suite benchmark 1206060-SU-LLVMCLANG78. More tests are forthcoming.
Recent work on the ARM Linux cluster from the Phoronix office.
9 Comments