LLVM Weekly - #34, Aug 25th 2014 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/34>. Welcome to the thirty-fourth issue of LLVM Weekly, a weekly newsletter (published every Monday) covering developments in LLVM, Clang, and related projects.LLVM Weekly is brought to you by [Alex Bradbury](http://asbradbury.org).Subscribe to future issues at <http://llvmweekly.org> and pass it on to anyone else you think may be interested. Please send any tips or feedback to <asb at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web The third release candidate for LLVM/Clang 3.5 is [now available](http://article.gmane.org/gmane.comp.compilers.clang.devel/38553). As ever, test it on your codebases and report any regressions. Adrian Sampson has written a [blog post about Quala](https://homes.cs.washington.edu/~asampson/blog/quala.html), a tool for implementing pluggable type systems for C/C++ using Clang. The example type systems are a system allowing nullable and non-nullable pointers as well as an information flow tracking system. In the future, Adrian wants to connect type annotations to LLVM IR. C++14 is [now done](http://isocpp.org/blog/2014/08/we-have-cpp14). A quick look at the [Clang C++14 implementation status](http://clang.llvm.org/cxx_status.html#cxx14) confirms that Clang support is in pretty good shape. Santiago Fernandez has been an intern on the .NET team at Microsoft this summer. In this MSDN Channel9 posting, Beth Massi [interviews him about his work on using LLVM in the .NET native code generator](http://channel9.msdn.com/Blogs/funkyonex/Fun-with-the-Interns-Santiago-Fernandez-on-LLVM-Based-Optimizer-for-MSIL). The next Cambridge (UK) LLVM social [will be held on Weds 27th August, 7.30pm](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75952). ## On the mailing lists * There is a [proposal](http://article.gmane.org/gmane.comp.debugging.lldb.devel/4887) to move the minimum supported Visual Studio version for compiling LLVM/Clang up to 2013 from 2012. LLVM/Clang 3.6 would be the first stable release with this requirement assuming there are no objections. With the introduction of C++11 features into the LLVM/Clang codebases, MSVC2012 support is troublesome due to a number of unsupported constructs. If this change would effect you negatively, now is the time to pipe up. * Richard Carback [reports](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75943) that two of his interns at Draper Laboratories have been working on resurrecting the LLVM C Backend, with [source on Github](https://github.com/draperlaboratory/llvm-cbe). If this is to make it back into the mainstream repository, somebody will have to volunteer to maintain it which [Richard has kindly done](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75974). * Diego Novillo has posted an [update on his plans for supporting profile data from Perf in LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/76135). He is now planning on keeping conversion to Perf's format out-of-tree. The current LLVM representation can be used as an exchange format, but Diego will be submitting a more compact representation for internal use. * Chris Bieneman has posted on RFC on [removing static initializers for command line options](http://article.gmane.org/gmane.comp.compilers.llvm.devel/76135). This would make it easier for LLVM clients like WebKit and Mesa. There is a lot of discussion about this proposal that I'm afraid I don't have time to summarise. ## LLVM commits * X86 Haswell gained a detailed scheduling model. [r215094](http://reviews.llvm.org/rL215094), [r215905](http://reviews.llvm.org/rL215095), and more. * LLVM's code coverage mapping format gained extensive documentation. [r215990](http://reviews.llvm.org/rL215990). * FastISel for AArch64 saw yet more changes, this time optimisations for ADDS/SUBS emission and support for variable shifts. [r216033](http://reviews.llvm.org/rL216033), [r216242](http://reviews.llvm.org/rL216242). * The MIPS assembler gained support for `.set arch=x`. [r215978](http://reviews.llvm.org/rL215978). * The PeepholeOptimizer has been improved to take advantage of the recently added isRegSequence, isExtractSubreg, and isInsertSubreg properties. [r216088](http://reviews.llvm.org/rL216088), [r216136](http://reviews.llvm.org/rL216136), [r216144](http://reviews.llvm.org/rL216144). * A thread-model option has been added along with the 'single' option for lowering atomics on baremetal and single-threaded systems. [r216182](http://reviews.llvm.org/rL216182). * The gold plugin has been rewritten in order to fix [bug 19901](http://llvm.org/bugs/show_bug.cgi?id=19901). [r216215](http://reviews.llvm.org/rL216215). ## Clang commits * C++1y is now called C++14. [r215982](http://reviews.llvm.org/rL215982). * CGcall (code generation for function call) has been refactored. [r216251](http://reviews.llvm.org/rL216251). ## Other project commits * The libcxx build and test system gained support for `LLCM_USE_SANITIZER`. [r215872](http://reviews.llvm.org/rL215872). * libcxxabi/libunwind now supports baremetal ARM. [r216202](http://reviews.llvm.org/rL216202).