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


HTML5 Is A Finished W3C Standard
29/10/2014

If you are a web developer you will probably want to remember where you were on the day (October 28th, 2014) that HTML 5 became a standard. But my best guess is that you will just yawn and get on with [ ... ]



Google Introduces Signed-In Maps
30/10/2014

The latest feature in Google's JavaScript API sounds attractive - unless you have problems with Google knowing all your location-related preferences.


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.