InfoQ Homepage News LLVM 3.3 Achieves Full C++11 Compliance

LLVM 3.3 Achieves Full C++11 Compliance

This item in japanese

This item in chinese


The latest release of the LLVM project brings forth a host of new features, including full C++11 compiler support developed through the Clang sub-project.  Foremost among the new features is support for several new CPU architectures, including AArch64 (64-bit ARM), AMD’s R600 GPU, IBM’s z/Architecture (s390x), and several improvements to the MIPS and PowerPC targets.  

LLVM has two vectorizers: loop and freshly added SLP.  For 3.3, the loop vectorizer benefits from several improvements to generate better code and is enabled by default when the –O3 flag is used.  Some of the new additions include runtime checks of pointers, reverse iterators, and If conversion.  The SLP vectorizer (superword-level parallelism) combines “similar independent instructions into vector instructions”.  SLP vectorizer is enabled with the flag “-fslp-vectorize”.

Dragon Egg is a sub-project of LLVM which brings LLVM technology to GCC.  DragonEgg replaces the optimizer’s and code generators in GCC with its own.  Notable LLVM 3.3 improvements are support for gcc-4.8.1+, and better debug info.  LLDB, the Low Level Debugger, adds several Linux features:

  • Support for watchpoints
  • vim integration for lldb commands and program status using a vim plug-in
  • Improved register support including vector registers
  • Builds with cmake/ninja/auto-tools/clang 3.3/gcc 4.6

Developers using C++11 (or those considering it for use with an existing code base) can explore LLVM’s C++11 migration tool, cpp11-migrate.  As noted on the LLVM blog, “The purpose of the C++11 Migrator is to do source-to-source translation to migrate existing C++ code to use C++11 features to enhance maintainability, readability, runtime performance, and compile-time performance.”

LLVM 3.3 is distributed in a variety of formats, including source and pre-built binaries.  Users of Linux, FreeBSD, and Mac OS X may download an installer from the project directly.  Alternatively check with your operating system’s distribution or compile from source.  The LLVM team provides detailed instructions on how the compilation can be done.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.