LLVM Weekly - #36, Sep 8th 2014
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. 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 firstname.lastname@example.org, or @llvmweekly or @asbradbury on Twitter.
The canonical home for this issue can be found here at llvmweekly.org.
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. See the release notes for a full breakdown of what's changed.
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.
Intel have released a new version of their CilkPlus LLVM-basd compiler. 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 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.
Balaram Makam triggered an interesting discussion on whether a particular case of loop-invariant code motion can be considered safe.
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.
The old JIT has finally been removed. r216982.
MCAnalysis has been removed. The code was judged to be buggy and poorly tested. r216983.
AArch64 gained a pass to try to remove redundant comparison operations. r217220.
FastISel has seen some spring cleaning. r217060.
VariantMatcher::MatcherOpswas modified to reduce the amount of generated code. This reduces object size and compilation time. r217152.
A new warning is born.
-Wunused-local-typedefwill warn about unused local typedefs. r217298.
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.
It is now possible to build libc++ on systems without POSIX threads. r217271.
target.process.memory-cache-line-sizeoption has been added to LLDB which changes the size of lldb's internal memory cache chunks read from the remote system. r217083.