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. Acer B286HK: A 28-inch UHD LED 4K Monitor For As Low As $350
  2. Intel Xeon E5-1680 v3 & E5-2687W v3 Compared To The Core i7 5960X On Linux
  3. Intel 120GB 530 Series SSD Linux Performance
  4. Btrfs/EXT4/XFS/F2FS RAID 0/1/5/6/10 Linux Benchmarks On Four SSDs
Latest Linux Articles
  1. Mesa Git Yields Performance Improvements For Newer AMD GPUs
  2. Apple OS X 10.10 vs. Ubuntu 14.10 Performance
  3. Mesa 10.5-devel Brings Some Intel Haswell HD Graphics Changes Over Mesa 10.3
  4. NVIDIA vs. Nouveau Drivers With Linux 3.18 + Mesa 10.4-devel
Latest Linux News
  1. Devuan: Debian Without Systemd
  2. Wine 1.7.32 Updates Its Mono Engine
  3. Mesa 10.4 Release Candidate 3 Is Here For Weekend Testing
  4. GenodeOS 14.11 Now Supports Intel's Wireless Hardware
  5. Jolla Tablet Could Have Upgrades For MicroSDHC, Split Screen, 3.5G
  6. Intel Has Last Round Of DRM Changes For Linux 3.19, Starts Dropping DRI1/UMS
  7. Fedora 21 Release Candidate 1 Awaits Your Testing
  8. GCC 5 Adds Support For ARM's Cortex-A17
  9. KWayland Server Component Coming For KDE Plasma 5.2
  10. NVIDIA Posts Tegra Gallium3D Patch For K1+ Support
Latest Forum Discussions
  1. Aliens vs predator for Linux
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Hurrican SDL Port
  4. Roadmap to Catalyst 14.10 ?
  5. how to configure module phoromatic ?
  6. PulseAudio 6.0 Is Coming & Other Linux Audio Plans For The Future
  7. Debian Developer Resigns From The Systemd Maintainership Team
  8. Cant get working Kaveri APU - A10-7850k