DragonEgg 3.0 Puts GCC & LLVM In One Bed

Published on December 05, 2011
Written by Michael Larabel
Page 1 of 5
Discuss This Article

LLVM 3.0 was released last week as a major update to this increasingly popular open-source compiler infrastructure. With the release of LLVM 3.0 proper also came major updates to the Clang C/C++ compiler front-end and the DragonEgg GCC plug-in (here are the exciting LLVM3 changes). In this article is a look at DragonEgg for LLVM 3.0 that plugs into GCC to replace its optimizers and code generators with those from LLVM.

The DragonEgg plug-in is not new to LLVM 3.0, but it has been around for quite a while. The DragonEgg plug-in has matured a lot in the past year and is in rather great shape for LLVM 3.0. Last November was when I published the first DragonEgg benchmarks and compared the performance to that of native GCC, LLVM-GCC, and Clang.

With the LLVM 3.0 release, DragonEgg succeeds LLVM-GCC, which was the modified version of the GNU Compiler Collection that used various Low-Level Virtual Machine components internally. With GCC's plug-in support on newer versions of the Free Software Foundation compiler, much of this can be moved to a plug-in that works on an unmodified version of GCC. This makes it easier to switch between a vanilla GCC and that with the LLVM generators/optimizers, is easier to maintain, allows using the latest GCC releases, etc. LLVM-GCC was also using the GCC 4.2 code-base due to licensing differences. Previous versions of DragonEgg did require a small patch to LLVM itself, but now the new version of DragonEgg will work with vanilla versions of GCC 4.5/4.6 and future releases.

DragonEgg with GCC can be useful in cases where LLVM's Clang native C/C++ front-end does not correctly compile the target software, there is other software dependence on GCC, or wishing to compile a language that currently doesn't have a native compiler front-end to LLVM. DragonEgg is currently targeted for x86 and x86_64 architectures. The languages fully supported by the GCC-with-LLVM plug-in include C, C++, ADA, and Fortran. There is also partial DragonEgg support for the Java, Go, Objective-C++, and Objective-C languages. Supported operating systems for using this plug-in are currently Linux, Darwin, and FreeBSD.

Besides now working with mainline GCC 4.5/4.6 with no patches, the type and constant conversion logic has been almost entirely rewritten and the "-fplugin-arg-dragonegg-enable-gcc-optzns" option is largely improved. Passing the "-fplugin-arg-dragonegg-enable-gcc-optzns" option to the compiler results in both the GCC and LLVM optimizers being used when generating binaries. This DragonEgg option is intended to deliver the "ultimate performance", but with the 3.0 release, it is still deemed experimental and in some cases is known to crash the plug-in. This compiler optimization switch will also be illustrated in today's benchmarks.

<< Previous Page
1
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Linux Desktop Security Could Be A Whole Lot Better
  2. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  3. New NVIDIA Linux Driver Supports The GeForce GTX 780
  4. Chrome 28 To Offer More Speed Improvements
  5. Digia Announces "Boot To Qt" Project
  6. X.Org Libraries Hit By Round Of Security Issues
  7. Wayland's Weston Gets Output Scaling Support
  8. Raspberry Pi Gets New Wayland Weston Renderer
  9. Debian GNU/Hurd 2013 Release Brings New Packages
  10. Intel Ultrabook Performance Is Faster With Mesa 9.2
  11. Hot Relocation HDD To SSD Support For Btrfs
Latest Forum Talk
  1. Linux Desktop Security Could Be A Whole Lot Better
  2. Intel Linux OpenGL Driver Leading Over Apple OS X
  3. Debian GNU/Hurd 2013 Release Brings New Packages
  4. X.Org Libraries Hit By Round Of Security Issues
  5. KDE 4.11 Will Be The Last Major KDE4 Workspaces...
  6. Sumo Lounge Emperor
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite