LLVM Weekly - #36, Sep 8th 2014 ============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/36>. Welcome to the thirty-sixth 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 biggest news this week is of course undoubtedly the long-awaited [release of LLVM/Clang 3.5](http://lists.cs.uiuc.edu/pipermail/llvm-announce/2014-September/000055.html). See the [release notes](http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html) for a full breakdown of what's changed. [Rhine](https://github.com/artagnon/rhine), a Clojure-inspired Lisp with an LLVM JIT backend has been released (or at least, I wasn't aware of it before). There's plenty of discussion about it [over at HN](https://news.ycombinator.com/item?id=8277410). Intel have [released a new version](http://article.gmane.org/gmane.comp.compilers.llvm.devel/76551) of their [CilkPlus LLVM-basd compiler](http://cilkplus.github.io/). This releases implements support for version 1.2 of Intel's Cilk Plus Language Extension Specification. ## On the mailing lists * Hal Finkel is [calling for testers](http://article.gmane.org/gmane.comp.compilers.llvm.devel/76487) of the new contrext-free language pointer aliasing analysis algorithm. As well as some speedup, there are some benchmark slowdowns which sound worth of further investigation. * Richard Pennington is [seeking feedback](http://article.gmane.org/gmane.comp.compilers.clang.devel/38774) on his proposal for a cross compiler config file format for Clang. The initial prototype spec is [described over at his blog](http://ellcc.org/blog/?p=11877). * Balaram Makam triggered an [interesting discussion on whether a particular case of loop-invariant code motion can be considered safe](http://article.gmane.org/gmane.comp.compilers.llvm.devel/76467). ## LLVM commits * LLVM gained a new alias analysis implementation, the CFL (Context-free language) alias analysis algorithm. When bootstrapping LLVM, this pass gives 7-8% NoAlias responses to queries that TBAA and BasicAA couldn't answer. [r216970](http://reviews.llvm.org/rL216970). * The old JIT has finally been removed. [r216982](http://reviews.llvm.org/rL216982). * FastISel gained the option to skip target-independent instruction selection. This is now used by AARch64, which uses target-dependent instruction selection only. [r216947](http://reviews.llvm.org/rL216947), [r216955](http://reviews.llvm.org/rL216955). * MCAnalysis has been removed. The code was judged to be buggy and poorly tested. [r216983](http://reviews.llvm.org/rL216983). * AArch64 gained a pass to try to remove redundant comparison operations. [r217220](http://reviews.llvm.org/rL217220). * FastISel has seen some spring cleaning. [r217060](http://reviews.llvm.org/rL217060). ## Clang commits * `VariantMatcher::MatcherOps` was modified to reduce the amount of generated code. This reduces object size and compilation time. [r217152](http://reviews.llvm.org/rL217152). * Support for the 'w' and 'h' length modifiers in MS format strings was added. [r217195](http://reviews.llvm.org/rL217195), [r217196](http://reviews.llvm.org/rL217196). * A new warning is born. `-Wunused-local-typedef` will warn about unused local typedefs. [r217298](http://reviews.llvm.org/rL217298). ## Other project commits * LLDB has gained initial support for 'type validators'. To quote the commit message, "Type Validators have the purpose of looking at a ValueObject, and making sure that there is nothing semantically wrong about the object's contents For instance, if you have a class that represents a speed, the validator might trigger if the speed value is greater than the speed of light". [r217277](http://reviews.llvm.org/rL217277). * It is now possible to build libc++ on systems without POSIX threads. [r217271](http://reviews.llvm.org/rL217271). * A `target.process.memory-cache-line-size` option has been added to LLDB which changes the size of lldb's internal memory cache chunks read from the remote system. [r217083](http://reviews.llvm.org/rL217083).