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

DragonEgg 3.0 Puts GCC & LLVM In One Bed

Michael Larabel

Published on 5 December 2011
Written by Michael Larabel
Page 1 of 5 - 11 Comments

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 Linux Hardware Reviews
  1. Preview: AMD's FX-9590 Eight-Core At Up To 5.0GHz On Linux
  2. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  3. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
  4. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
Latest Linux Articles
  1. How Intel Graphics On Linux Compare To Open-Source AMD/NVIDIA Drivers
  2. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
  3. Testing For The Latest Linux Kernel Power Regression
  4. The Most Energy Efficient Radeon GPU For AMD Linux Gaming
Latest Linux News
  1. Nouveau X.Org Driver Released With DRI3+Present, Maxwell, GLAMOR
  2. Microsoft & AMD Release C++ AMP Compiler With Linux Support
  3. AMD, Wine & Valve Dominated August For Linux Users
  4. Linux 3.17-rc3 Kernel Released Back On Schedule
  5. Lennart Poettering Talks Up His New Linux Vision That Involves Btrfs
  6. Mesa 10.3 RC2 Arrives Via Its New Release Manager
  7. Ubuntu 14.10's Lack Of X.Org Server 1.16 Gets Blamed On AMD
  8. MSI Motherboard BIOS Updating Remains A Pain For Linux Users
  9. See How Your Linux System Performs Against The Latest Intel/AMD CPUs
  10. AMD Steppe Eagle Flys To Coreboot
Latest Forum Discussions
  1. Lennart Poettering Talks Up His New Linux Vision That Involves Btrfs
  2. The dangers of Linux kernel development
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. AMD Releases UVD Video Decode Support For R600 GPUs
  5. SSD seems slow
  6. Is laptop with Intel CPU and AMD dGPU worth buying considering especially AMD Enduro?
  7. Radeon HD5670 and Ubuntu 14.04
  8. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs