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 https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to [email protected], 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. 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.
-
Richard Pennington is seeking feedback on his proposal for a cross compiler config file format for Clang. The initial prototype spec is described over at his blog.
-
Balaram Makam triggered an interesting discussion on whether a particular case of loop-invariant code motion can be considered safe.
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.
-
The old JIT has finally been removed. r216982.
-
FastISel gained the option to skip target-independent instruction selection. This is now used by AARch64, which uses target-dependent instruction selection only. r216947, r216955.
-
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.
Clang commits
-
VariantMatcher::MatcherOps
was modified to reduce the amount of generated code. This reduces object size and compilation time. r217152. -
Support for the 'w' and 'h' length modifiers in MS format strings was added. r217195, r217196.
-
A new warning is born.
-Wunused-local-typedef
will 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.
-
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.