[FoRK] C++11: CLANG feature complete, g++ close

Stephen Williams sdw at lig.net
Sat Apr 20 15:54:43 PDT 2013



  LLVM's Clang Compiler Is Now C++11 Feature Complete

    Posted by Michael Larabel on April 19, 2013

The Clang C/C++ compiler front-end to LLVM is now declared "feature complete" against the C++11 ISO 
<http://www.phoronix.com/scan.php?page=news_item&px=MTM1NTg#> standard.

With a SVN/Git commit <https://github.com/llvm-mirror/clang/commit/e6e68b53778bb5a15c10a73a5bf18d8ab73f75e3> made today, the 
C++11 support within the LLVM/Clang compiler <http://www.phoronix.com/scan.php?page=news_item&px=MTM1NTg#> is now deemed 
"feature complete" with all of the new features to the ISO-approved C++ language update having been implemented.

The last of the C++11 features to be implemented were support for inheriting constructors, and C11/C++11 thread_local. C++11 
support has been a very active work <http://www.phoronix.com/scan.php?page=news_item&px=MTM1NTg#>-in-progress item for the past 
several Clang releases. It's been nearly complete <http://www.phoronix.com/scan.php?page=news_item&px=MTMwOTU> for several 
months but only with the latest LLVM/Clang 3.3 SVN code are all of the features officially implemented.

By Intel developers <http://www.phoronix.com/scan.php?page=news_item&px=MTM1NTg#> there has also been a project forming that 
supports automatically converting C++ code into C++11 <http://www.phoronix.com/scan.php?page=news_item&px=MTM1MTk> to take 
advantage of new features.

Finishing off this support comes at a time when many open-source projects are beginning to use C++11 
<http://www.phoronix.com/scan.php?page=news_item&px=MTIzNjM>. LLVM developers have also looked at using some C++11 features 
<http://www.phoronix.com/scan.php?page=news_item&px=MTI3MDM> within the compiler itself.

For those unfamiliar with the C++11 language features, there is a Wikipedia article <http://en.wikipedia.org/wiki/C%2B%2B11> and 
the ISO.org specification <http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372>.

Meanwhile, in terms of support for GCC (the GNU Compiler Collection 
<http://www.phoronix.com/scan.php?page=news_item&px=MTM1NTg#>) supporting C++11, it's nearly complete. The GCC C++11 state is 
reflected on this web-page <http://gcc.gnu.org/projects/cxx0x.html>. Most functionality of C++11 is implemented within the 
recent release of GCC 4.8, but still to be complete is minimal support for garbage collection and reachability-based leak 
detection, some data-dependency ordering, and a few other small items.

LLVM/Clang 3.3 <http://www.phoronix.com/scan.php?page=search&q=LLVM+3.3> will be the first compiler release with full C++11 
support and its release is expected in June <http://www.phoronix.com/scan.php?page=news_item&px=MTM0MTA>. Besides finishing up 
the C++11 support, LLVM 3.3 and Clang 3.3 also provides dramatic performance improvements 
<http://www.phoronix.com/vr.php?view=18656>, better Intel AVX2 support 
<http://www.phoronix.com/scan.php?page=news_item&px=MTMzODc>, the AMD R600 GPU LLVM back-end 
<http://www.phoronix.com/scan.php?page=news_item&px=MTMxOTE>, enhancements to its loop vectorizer 
<http://www.phoronix.com/scan.php?page=news_item&px=MTMwMTk> (and enabled by default for /-O3/), and numerous other new features 
and optimizations.

More information about the FoRK mailing list