Clang 3.4 Released
Written by Kay Ewbank   
Friday, 10 January 2014

The LLVM 3.4 compiler has been released with an updated Clang C/C++ compiler front-end and new compiler tools.

 

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. It began life as a research project at the University of Illinois, with the goal of providing a modern, SSA-based compilation strategy capable of supporting both static and dynamic compilation of arbitrary programming languages.

The Clang project was created in order to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler. It is a "LLVM native" C/C++/Objective-C compiler that aims to deliver very fast compiles, about three times faster than GCC when compiling Objective-C code in a debug configuration.

One of the main improvements in LLVM 3.4 is the enabling by default of the AMD R600 GPU LLVM back-end. Until now this was an ‘experimental’ feature, but the new version moves beyond that. The advantage this offers is that it means you can use it with the open-source AMD Linux graphics driver.

Other improvements include a new Clang-Format utility that you can use to auto-format code, more widespread use of the loop vectorizer at different optimization levels, and the fact the SLP straight-line vectorizer is turned on by default. There’s a driver for Microsoft Visual Studio.

Support has been added for the MIPS SIMD architecture, as well as experimental support for SPARC V9. Several improvements mean the PowerPC backend in terms of code generation quality and compile time. The X86, SPARC, ARM32, Aarch64 and SystemZ backends have all been improved.

According to the Clang 3.4 release notes, the main improvements to the Clang implementation start with improvements to Clang’s diagnostics to catch more issues, explain them more clearly, and provide more accurate source information about them.

The C Language support in Clang has new checked arithmetic builtins for security critical applications. C++ changes include support for the 2013-08-28 draft of the ISO WG21 SG10 feature test macro recommendations. These aim to provide a portable method to determine whether a compiler supports a language feature, much like Clang’s __has_feature macro.

One major improvement is support for all the features in the current working draft of the C++1y standard. This will become the new C++ standard when finalised. Support for the following major new features has been added since Clang 3.3:

  • Generic lambdas and initialized lambda captures
  • Deduced function return types (auto f() { return 0; })
  • Generalized constexpr support (variable mutation and loops)
  • Variable templates and static data member templates.
  • Use of ' as a digit separator in numeric literals.

Clang-cl has also added a new experimental driver mode that is designed for compatibility with Visual Studio’s compiler, cl.exe. This driver mode makes Clang accept the same kind of command-line options as cl.exe. The installer will attempt to expose clang-cl in any Visual Studio installations on the system as a Platform Toolset, e.g. “LLVM-vs2012”.

 

Banner


Arduino 3D Printing And CNC Machines
04/10/2014

October 3rd was National Manufacturing Day in the USA. What has this to do with software? Everything.



Firefox OS Comes To Raspberry Pi
28/10/2014

Firefox OS hasn't taken over the world yet despite its promise. Now we have a small effort from Mozilla to make it run on one of the most successful budget devices in the world - the Raspberry Pi.


More News

You can  here: http://llvm.org/releases/download.html#3.4

Last Updated ( Friday, 10 January 2014 )
 
 

   
RSS feed of news items only
I Programmer News
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.