LLVM 3.4 vs. GCC 4.9 Compiler Benchmarks

Tests by Michael Larabel for a future article on Phoronix.com looking at the LLVM Clang 3.4 open-source compiler performance from Ubuntu Linux then compared to GCC 4.8 and GCC 4.9.

HTML result view exported from: https://openbenchmarking.org/result/1312111-SO-GCC49LLVM96&gru&rdt.

LLVM 3.4 vs. GCC 4.9 Compiler BenchmarksProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2Intel Core i7-4960X @ 4.00GHz (12 Cores)MSI X79MA-GD45 (MS-7738) v1.0Intel Xeon E5 v2/Core8192MB1000GB Seagate ST1000DX001-1CM1Sapphire AMD Radeon HD 4870 512MBRealtek ALC892DELL S2409WRealtek RTL8111/8168/8411Ubuntu 14.043.13.0-999-generic (x86_64)Unity 7.1.2X Server 1.14.4radeon 7.2.03.1 Mesa 10.0.0 Gallium 0.4Clang 3.4 (SVN 197046) + LLVM 3.4ext41920x1080Clang 3.3 + LLVM 3.3GCC 4.9.0 20131208GCC 4.8.2OpenBenchmarking.orgCompiler Details- LLVM Clang 3.4 SVN: Optimized build; Built Dec 11 2013 (10:19:57); Default target: x86_64-unknown-linux-gnu; Host CPU: core-avx-i- LLVM Clang 3.3: Optimized build; Built Dec 11 2013 (09:55:18); Default target: x86_64-unknown-linux-gnu; Host CPU: x86-64- GCC 4.9.0 20131208: --enable-checking=release --enable-languages=c,c++- GCC 4.8.2: --enable-checking=release --enable-languages=c,c++Processor Details- Scaling Governor: intel_pstate powersave

LLVM 3.4 vs. GCC 4.9 Compiler Benchmarksbotan: Tigerbotan: KASUMIbotan: AES-256botan: Twofishbotan: CAST-256botan: X9.19-MACscimark2: Compositescimark2: Monte Carloscimark2: Fast Fourier Transformscimark2: Sparse Matrix Multiplyscimark2: Dense LU Matrix Factorizationscimark2: Jacobi Successive Over-Relaxationhimeno: Poisson Pressure Solvercompress-7zip: Compress Speed Testhint: FLOAThint: DOUBLEnginx: Static Web Page Servingapache: Static Web Page Servingblake2: Phoronix Test Suite v4.8.6hmmer: Pfam Database Searchbuild-mplayer: Time To Compilebuild-php: Time To Compilec-ray: Total Timecompress-pbzip2: 256MB File Compressionencode-flac: WAV To FLACencode-mp3: WAV To MP3ffmpeg: H.264 HD To NTSC DVn-queens: Elapsed TimeLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2431.7752.21202.80200.82110.7179.861986.97637.24344.332779.394449.091724.821713.4730977230228636.05588678410.6518974.4514606.915.108.703.1613.5019.945.714.8411.7911.42433.5567.70192.16195.64114.2083.841531.29632.55339.212469.342489.311726.031671.6030761277549891.07599037509.4318991.8914690.907.588.7115.2619.545.705.6512.8611.301390.53572.28347.832317.412506.891208.222080.9329544340096979.25689565776.5914991.6914553.305.328.7033.0721.5317.424.1112.5511.2824.58431.6876.59150.44200.7496.5686.571389.41577.28347.122315.772501.011205.851714.8429344337303850.89679836110.1818948.0714621.885.308.7331.6220.8117.494.815.2912.7511.3524.99OpenBenchmarking.org

Botan

Test: Tiger

OpenBenchmarking.orgMbytes/s, More Is BetterBotan 1.10.3Test: TigerLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.290180270360450431.77433.55431.681. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2

Botan

Test: KASUMI

OpenBenchmarking.orgMbytes/s, More Is BetterBotan 1.10.3Test: KASUMILLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.22040608010052.2167.7076.591. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2

Botan

Test: AES-256

OpenBenchmarking.orgMbytes/s, More Is BetterBotan 1.10.3Test: AES-256LLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.24080120160200202.80192.16150.441. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2

Botan

Test: Twofish

OpenBenchmarking.orgMbytes/s, More Is BetterBotan 1.10.3Test: TwofishLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.24080120160200200.82195.64200.741. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2

Botan

Test: CAST-256

OpenBenchmarking.orgMbytes/s, More Is BetterBotan 1.10.3Test: CAST-256LLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.2306090120150110.71114.2096.561. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2

Botan

Test: X9.19-MAC

OpenBenchmarking.orgMbytes/s, More Is BetterBotan 1.10.3Test: X9.19-MACLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.22040608010079.8683.8486.571. (CXX) g++ options: -m64 -ldl -lpthread -lrt -O2

SciMark

Computational Test: Composite

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: CompositeLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2400800120016002000SE +/- 1.51, N = 4SE +/- 1.54, N = 4SE +/- 1.83, N = 4SE +/- 1.82, N = 41986.971531.291390.531389.411. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Monte Carlo

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Monte CarloLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2140280420560700SE +/- 0.00, N = 4SE +/- 0.54, N = 4SE +/- 0.73, N = 4SE +/- 0.00, N = 4637.24632.55572.28577.281. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Fast Fourier Transform

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Fast Fourier TransformLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.280160240320400SE +/- 0.40, N = 4SE +/- 0.64, N = 4SE +/- 0.82, N = 4SE +/- 0.41, N = 4344.33339.21347.83347.121. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Sparse Matrix Multiply

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Sparse Matrix MultiplyLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.26001200180024003000SE +/- 8.97, N = 4SE +/- 3.56, N = 4SE +/- 3.27, N = 4SE +/- 3.13, N = 42779.392469.342317.412315.771. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Dense LU Matrix Factorization

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Dense LU Matrix FactorizationLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.210002000300040005000SE +/- 4.65, N = 4SE +/- 2.90, N = 4SE +/- 5.63, N = 4SE +/- 5.62, N = 44449.092489.312506.892501.011. (CXX) g++ options: -O3 -march=native

SciMark

Computational Test: Jacobi Successive Over-Relaxation

OpenBenchmarking.orgMflops, More Is BetterSciMark 2.0Computational Test: Jacobi Successive Over-RelaxationLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2400800120016002000SE +/- 1.40, N = 4SE +/- 1.21, N = 4SE +/- 1.19, N = 4SE +/- 1.18, N = 41724.821726.031208.221205.851. (CXX) g++ options: -O3 -march=native

Himeno Benchmark

Poisson Pressure Solver

OpenBenchmarking.orgMFLOPS, More Is BetterHimeno Benchmark 3.0Poisson Pressure SolverLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2400800120016002000SE +/- 1.44, N = 3SE +/- 0.38, N = 3SE +/- 1.15, N = 3SE +/- 1.86, N = 31713.471671.602080.931714.841. (CC) gcc options: -O3 -march=native

7-Zip Compression

Compress Speed Test

OpenBenchmarking.orgMIPS, More Is Better7-Zip Compression 9.20.1Compress Speed TestLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.27K14K21K28K35KSE +/- 263.12, N = 3SE +/- 116.34, N = 3SE +/- 193.19, N = 3SE +/- 50.86, N = 3309773076129544293441. (CXX) g++ options: -pipe -lpthread

Hierarchical INTegration

Test: FLOAT

OpenBenchmarking.orgQUIPs, More Is BetterHierarchical INTegration 1.0Test: FLOATLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.270M140M210M280M350MSE +/- 87866.73, N = 3SE +/- 426397.20, N = 3SE +/- 253360.03, N = 3SE +/- 429948.29, N = 3230228636.05277549891.07340096979.25337303850.891. (CC) gcc options: -O3 -march=native -lm

Hierarchical INTegration

Test: DOUBLE

OpenBenchmarking.orgQUIPs, More Is BetterHierarchical INTegration 1.0Test: DOUBLELLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2150M300M450M600M750MSE +/- 1339446.23, N = 3SE +/- 497267.91, N = 3SE +/- 1772118.95, N = 3SE +/- 839463.16, N = 3588678410.65599037509.43689565776.59679836110.181. (CC) gcc options: -O3 -march=native -lm

NGINX Benchmark

Static Web Page Serving

OpenBenchmarking.orgRequests Per Second, More Is BetterNGINX Benchmark 1.0.11Static Web Page ServingLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.24K8K12K16K20KSE +/- 44.62, N = 3SE +/- 6.21, N = 3SE +/- 987.48, N = 6SE +/- 49.87, N = 318974.4518991.8914991.6918948.071. (CC) gcc options: -lpthread -lcrypt -lcrypto -lz -O3 -march=native

Apache Benchmark

Static Web Page Serving

OpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.4.7Static Web Page ServingLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.23K6K9K12K15KSE +/- 85.10, N = 3SE +/- 84.59, N = 3SE +/- 61.95, N = 3SE +/- 22.02, N = 314606.9114690.9014553.3014621.881. (CC) gcc options: -shared -fPIC -pthread -O3 -march=native

BLAKE2

Phoronix Test Suite v4.8.6

OpenBenchmarking.orgCycles Per Byte, Fewer Is BetterBLAKE2 20121223Phoronix Test Suite v4.8.6LLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2246810SE +/- 0.08, N = 6SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.00, N = 35.107.585.325.301. (CC) gcc options: -std=gnu99 -O3 -march=native -lcrypto -lz

Timed HMMer Search

Pfam Database Search

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed HMMer Search 2.3.2Pfam Database SearchLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2246810SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 38.708.718.708.731. (CC) gcc options: -O3 -march=native -pthread -lhmmer -lsquid -lm

Timed MPlayer Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed MPlayer Compilation 1.0-rc3Time To CompileLLVM Clang 3.4 SVNGCC 4.9.0 20131208GCC 4.8.2816243240SE +/- 0.05, N = 4SE +/- 0.24, N = 3SE +/- 0.19, N = 33.1633.0731.62

Timed PHP Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed PHP Compilation 5.2.9Time To CompileLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2510152025SE +/- 0.34, N = 6SE +/- 0.37, N = 6SE +/- 0.01, N = 3SE +/- 0.05, N = 313.5015.2621.5320.811. (CC) gcc options: -O3 -march=native -pedantic -ldl -lz -lm

C-Ray

Total Time

OpenBenchmarking.orgSeconds, Fewer Is BetterC-Ray 1.1Total TimeLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.2510152025SE +/- 0.01, N = 3SE +/- 0.00, N = 3SE +/- 0.01, N = 3SE +/- 0.01, N = 319.9419.5417.4217.491. (CC) gcc options: -lm -lpthread -O3 -march=native

Parallel BZIP2 Compression

256MB File Compression

OpenBenchmarking.orgSeconds, Fewer Is BetterParallel BZIP2 Compression 1.1.6256MB File CompressionLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.8.21.28482.56963.85445.13926.424SE +/- 0.02, N = 3SE +/- 0.02, N = 3SE +/- 0.04, N = 35.715.704.811. (CXX) g++ options: -O2 -pthread -lbz2 -lpthread

FLAC Audio Encoding

WAV To FLAC

OpenBenchmarking.orgSeconds, Fewer Is BetterFLAC Audio Encoding 1.3.0WAV To FLACLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.21.27132.54263.81395.08526.3565SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 54.845.654.115.291. (CXX) g++ options: -O3 -march=native -fvisibility=hidden -logg -lm

LAME MP3 Encoding

WAV To MP3

OpenBenchmarking.orgSeconds, Fewer Is BetterLAME MP3 Encoding 3.99.3WAV To MP3LLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.23691215SE +/- 0.02, N = 5SE +/- 0.01, N = 5SE +/- 0.01, N = 5SE +/- 0.00, N = 511.7912.8612.5512.751. (CC) gcc options: -pipe -O3 -march=native -lm

FFmpeg

H.264 HD To NTSC DV

OpenBenchmarking.orgSeconds, Fewer Is BetterFFmpeg 2.0H.264 HD To NTSC DVLLVM Clang 3.4 SVNLLVM Clang 3.3GCC 4.9.0 20131208GCC 4.8.23691215SE +/- 0.22, N = 3SE +/- 0.07, N = 3SE +/- 0.19, N = 3SE +/- 0.05, N = 311.4211.3011.2811.35-Qunused-arguments-Qunused-arguments-fno-tree-vectorize -MF -MT-fno-tree-vectorize -MF -MT1. (CC) gcc options: -lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -ldl -lasound -lSDL -lm -pthread -O3 -march=native -std=c99 -fomit-frame-pointer -fno-math-errno -fno-signed-zeros -MMD

N-Queens

Elapsed Time

OpenBenchmarking.orgSeconds, Fewer Is BetterN-Queens 1.0Elapsed TimeGCC 4.9.0 20131208GCC 4.8.2612182430SE +/- 0.00, N = 3SE +/- 0.00, N = 324.5824.991. (CC) gcc options: -static -fopenmp -O3 -march=native


Phoronix Test Suite v10.8.4