Clang 3.4 Released
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”.



Plan 28 - Can Babbage's Analytical Engine Be Built?

Plan 28 is an ongoing project to build Charles Babbage's Analytical Engine by the 2030s, two hundred years after it was originally designed. Current work is focused on compiling a searchable  [ ... ]

Over 4 Billion Internet Users

Well over half of the world’s population is now online, with the latest data showing that nearly a quarter of a billion new users came online for the first time in 2017. There are now over [ ... ]

More News

You can  here:

Last Updated ( Friday, 10 January 2014 )

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