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

What's Exciting About LLVM 3.0 & The New Clang

Compiler

Published on 29 November 2011 11:46 AM EST
Written by Michael Larabel in Compiler
2 Comments

Version 3.0 of LLVM is expected to be released tomorrow, along with a major update to Clang. Here's some of the noteworthy enhancements.

LLVM 3.0 with the adjoining Clang update is the first major update to the Low-Level Virtual Machine since the LLVM 2.9 release last April. LLVM 3.0 was scheduled for a November release (but it was delayed slightly) and marks the point of deprecating LLVM-GCC in favor of DragonEgg, which allows for LLVM optimizers to be used with the mainline GCC compiler front-end via a unique plug-in. Other interesting changes for LLVM 3.0 are listed below.

Clang C/C++ Compiler In LLVM 3.0:

- Much-improved C++ support in building software, the stability of the built software, and the diagnostics of any C++ issues.

- Improved C++0x (C++ 2011) support, but it's still not feature complete.

- Support for some features in the upcoming C1x standard.

- Improved Objective-C support.

DragonEgg For LLVM 3.0:

- GCC 4.6 is now fully supported by this plug-in to replace the GCC optimizers with those from LLVM.

- DragonEgg no longer requires a patched GCC but the plug-in can be cleanly loaded from GCC mainline versions 4.5/4.6.

- The option that allows both the GCC and LLVM optimizers to be used (rather than outright replacing the GCC optimizers with those of LLVM). This option is designed to deliver the "ultimate performance" but is still deemed experimental. (I'll be benchmarking out the new DragonEgg soon.)

- C, C++, Fortran, and ADA remain the officially supported languages for this GCC-front-end with LLVM-back-end plug-in. There's partial support for Java, Objective-C, Objective-C++, and Google Go.

Other LLVM Changes:

- libc++ (the new C++ standard library) and compiler_rt are now dual-licensed under the MIT and UIUC licenses. The LLVM C++ standard library is expected to be the default STL implementation in FreeBSD 10.0.

- VMKit (A Java Virtual Machine for LLVM) now supports pre-compilation, customized virtual methods, better inlining support, and a new exception model.

- LLVM IR now has full support for atomic memory operations as needed to support C++11 (C++0x) and C1x.

- A new "greedy" register allocator replaces the linear-scan register allocator.

- There's significant improvements to the MIPS back-end in LLVM 3.0.

- The MIPS architecture back-end to LLVM has been greatly improved.

- AVX (version 1) is now supported by LLVM, this is the Advanced Vector Extensions as introduced in the AMD Bulldozer and Intel Sandy Bridge CPUs.

- The Assembler/Disassembler has a range of new instructions for Intel Atom, Intel Ivy Bridge, SSE4a/BMI, rdrand, and others.

- Significant performance improvements for ARM Cortex-A9 SOCs. There's also improved Cortex-M series support and performance improvements for ARM NEON code.

More details about the imminent release of LLVM 3.0 can be found on the release notes page. I have already published some LLVM/Clang 3.0 benchmarks but more will be on the way from a greater range of systems and also in benchmarking the DragonEgg plug-in.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Articles & Reviews
  1. AMD FX-8320E Performance On Linux
  2. Linux Compiler Benchmarks Of LLVM Clang 3.5 vs. LLVM Clang 3.6-rc1
  3. Intel Broadwell HD Graphics 5500: Windows 8.1 vs. Linux
  4. Linux Benchmarks Of NVIDIA's Early 2015 GeForce Line-Up
  5. NVIDIA GeForce GTX 960: A Great $200 GPU For Linux Gamers
  6. Disk Encryption Tests On Fedora 21
Latest Linux News
  1. Intel Broadwell On Linux Has Working OpenCL 1.2, VP8 Video Acceleration
  2. GParted 0.21 Brings ReFS Detection, EXT4 For RHEL5, Reiser4 For Linux 3.x
  3. Wine Staging Update Has Better CUDA Support, Driver Testing Framework
  4. Nouveau In Linux 3.20 Will Have A Lot Of Code Cleaning
  5. Compare Your Linux System To The i7-5600U Broadwell X1 Carbon ThinkPad
  6. Debian 8.0 "Jessie" Installer RC1 Released
  7. Chromebook "Rush" With 64-bit Tegra SoC Support Lands In Coreboot
  8. 2015 X.Org Elections Get Underway For Board Members, SPI Merger
  9. Linux 3.19-rc6 Kernel Released: LInux 3.19 Final In Two Weeks
  10. Ubuntu's Mir Gains Server-Side Platform Probing
Most Viewed News This Week
  1. Windows 10 To Be A Free Upgrade: What Linux Users Need To Know
  2. Google Admin Encourages Trying Btrfs, Not ZFS On Linux
  3. TraceFS: The Newest Linux File-System
  4. My Initial Intel Broadwell Linux Experience With The ThinkPad X1 Carbon
  5. Keith Packard Leaves Intel's Linux Graphics Work
  6. Interstellar Marines On Linux With Catalyst: Bull S*#@
  7. NetworkManager Now Supports WiFi Power Savings
  8. Faster VP9 Decoding Is On The Horizon