1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

GCC 4.6, LLVM/Clang 2.9, DragonEgg Five-System Benchmarks

Michael Larabel

Published on 28 March 2011
Written by Michael Larabel
Page 1 of 8 - 10 Comments

Version 4.6 of GCC was released over the weekend with a multitude of improvements and version 2.9 of the Low-Level Virtual Machine is due out in early April with its share of improvements. How though do these two leading open-source compilers compare? In this article we are providing benchmarks of GCC 4.5.2, GCC 4.6.0, DragonEgg with LLVM 2.9, and Clang with LLVM 2.9 across five distinct AMD / Intel systems to see how the compiler performance compares.

For those not up to speed on the different compiler options available with GCC/LLVM, Clang is the C/Objective-C/C++ compiler front-end designed by LLVM developers for use with this unique and modern compiler infrastructure. Clang was deemed production ready as a C compiler in late 2009 with the release of LLVM 2.6. In 2010 the Clang compiler hit the milestone of being self-hosting, was enhanced by LLVM 2.7, gained support for the Boost libraries, was marked with feature-complete C++ support in LLVM 2.8, began building the Linux kernel, and was greeted by various other accomplishments.

DragonEgg is not an LLVM compiler but rather a GCC plug-in that replaces GCC's optimization and code generation paths with those from the Low-Level Virtual Machine. DragonEgg supports the plug-in functionality of GCC 4.5 and newer, but as of right now does require a minor and rather trivial patch against GCC. This LLVM-optimizations-and-code-generation-on-GCC plug-in is working with the C language along with most C++ programs. The Fortran support is improving along with ADA. There is minimal support for Objective-C and Objective-C++ and the Java support right now is broken. This plug-in also only works on x86 and x86_64 systems with Linux/Darwin/FreeBSD, where as the Clang compiler and a vanilla GCC support far more architectures and operating systems. The DragonEgg plug-in is just ideal for those still dependent upon GCC at this time but would like to take advantage of LLVM's code generators and optimizers, but is not considered production ready. The DragonEgg work supersedes LLVM-GCC, which is a LLVM C front-end to GCC. Work on LLVM-GCC is being discontinued after the LLVM 2.9 release with its developers recommending users switch to DragonEgg or Clang, so we are not benchmarking LLVM-GCC anymore.

The LLVM and Clang source-code was pulled last week from the 2.9 release SVN branch while the DragonEgg was pulled from SVN as well, but is not branched for 2.9. GCC 4.6 was using its RC2 source package. When building the Low-Level Virtual Machine, a release build was carried out (--enable-optimized and --disable-assertion arguments). GCC was built with --enable-checking=release and when building the patched GCC 4.5.2 copy for DragonEgg, --enable-lto and --enable-plugin are also required.

The five systems were based around an Intel Core 2 Duo, Intel Core i3 2100 "Sandy Bridge", Intel Core i7 990X "Gulftown", AMD Fusion E-350, and AMD Opteron 2384. No ARM systems were tested due to no available hardware for testing.

The Intel Core 2 Duo system was equipped with a dual-core E8400 CPU overclocked to 3.87GHz, Gigabyte EP45T-DS3R motherboard, 2GB of system memory, 160GB Western Digital SATA drive, and ATI Radeon HD 4850 graphics card. The new Intel Core i3 2100 is a dual-core Sandy Bridge with Hyper Threading that is operating at 3.10GHz. An Intel H67 motherboard was paired with it along with 2GB of system memory and a 60GB OCZ Vertex 2 SSD. The six-core Intel Core i7 990X CPU with Hyper Threading that's clocked at 3.47GHz was running on an ASRock X58 SuperComputer motherboard, 3GB of system memory, 320GB Seagate SATA HDD, and a NVIDIA GeForce 9800GTX graphics card.

The 1.6GHz dual-core AMD Fusion E-350 "Zacate" setup was on an ASUS E35M1-M PRO motherboard with 4GB of system memory, 60GB OCZ Vertex SSD, and using the integrated Radeon HD 6310 integrated graphics. Lastly, the AMD Opteron 2384 Quad-Core at 2.70GHz processor was on a Tyan S2927 motherboard with 4GB of system memory, OCZ Agility EX SSD, and ATI Radeon HD 4870 graphics.

Ubuntu 10.10 x86_64 was the base Linux distribution used on all five systems, but with an upgrade to the Linux 2.6.38 vanilla kernel. GCC 4.5.2 (with or without DragonEgg) could not be tested on the AMD Fusion E-350 system as GCC 4.5.x was unable to successfully build on the system due to a regression and known bug, but is resolved with GCC 4.6.0.

Testing of GCC 4.5.2, GCC 4.6.0 RC2, DragonEgg SVN plugged into GCC 4.5.2 with LLVM 2.9 SVN, and LLVM/Clang 2.9 SVN was done with a number of different Phoronix Test Suite / OpenBenchmarking.org test profiles including John The Ripper, C-Ray, Smallpt, Himeno, MAFFT, 7-Zip, FLAC, LAME MP3, GraphicsMagick, OpenSSL, x264, and timed Apache compilation. These tests are all written in C / C++.

<< Previous Page
1
Latest Linux Hardware Reviews
  1. NVIDIA GeForce GTX 970 Offers Great Linux Performance
  2. CompuLab Intense-PC2: An Excellent, Fanless, Mini PC Powered By Intel's i7 Haswell
  3. From The Atom 330 To Haswell ULT: Intel Linux Performance Benchmarks
  4. AMD Radeon R9 285 Tonga Performance On Linux
Latest Linux Articles
  1. AMD Moves Forward With Unified Linux Driver Strategy, New Kernel Driver
  2. MSI: Update Your BIOS From The Linux Desktop
  3. NVIDIA vs. AMD 2D Linux Drivers: Catalyst Is Getting Quite Good At 2D
  4. 15-Way GPU Comparison With Mesa 10.3 + Linux 3.17
Latest Linux News
  1. Debian Now Defaults To Xfce On Non-x86 Desktops
  2. Phoenix Is Trying To Be An Open Version Of Apple's Swift
  3. Linux 3.19 To Have Skylake Graphics, PPGTT Enablement
  4. Ubuntu 16.04 Might Be The Distribution's Last 32-Bit Release
  5. Imagination Releases Full ISA Documentation For PowerVR Rogue GPUs
  6. Features GNOME Developers Want In The Linux Kernel
  7. GTK+ Gains Experimental Overlay Scrollbars
  8. Phoronix Test Suite 5.4 M3 Is Another Hearty Update
  9. GParted 0.20 Improves Btrfs Support
  10. EXT4 In Linux 3.18 Has Clean-ups, Bug Fixes
Latest Forum Discussions
  1. Users/Developers Threatening Fork Of Debian GNU/Linux
  2. Proof that strlcpy is un-needed
  3. xbox one tv tuner
  4. HOPE: The Ease Of Python With The Speed Of C++
  5. Bye bye BSD, Hello Linux: A Sys Admin's Story
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. NVIDIA Presents Its Driver Plans To Support Mir/Wayland & KMS On Linux
  8. AMD Is Restructuring Again, Losing 7% Of Employees