[llvm-dev] LLVM Weekly - #102, Dec 14th 2015
Alex Bradbury via llvm-dev
llvm-dev at lists.llvm.org
Mon Dec 14 04:40:23 PST 2015
LLVM Weekly - #102, Dec 14th 2015
If you prefer, you can read a HTML version of this email at
Welcome to the one hundred and second 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
Version 1.5 of the Rust programming language [has been
released](http://blog.rust-lang.org/2015/12/10/Rust-1.5.html). Rust of course
uses LLVM as its backend.
George Balatsouras has written a blog post on [compiling a project using
autotools to LLVM
## On the mailing lists
* Derek Schuff kicked off a discussion about whether [virtual registers should
be allowed after register allocation for targets with infinite virtual
targets such as WebAssembly and NVPTX, it of course doesn't make sense to have
a fixed size register file. A number of people raised concerns that using
virtual registers after register allocation seems like a hack that could
result in difficult corner cases, or suggested that supporting infinite (or at
least growable) physical register sets might be an interesting alternative.
Matthias Braun gave a really good [summary of the
* Discussion has continued on adding an HasInaccessibleState attribute.
Vaivaswatha Nagaraj summarised the [key points of the discussion so
Joseph Tremoulet [shared some thoughts based on his experience on the
* Alexander Riccio is interested in feedback on his [proposal to integrate
more static analysis
He's looking to import code published by NIST.
* Philip Reames has posted an RFC on [extending atomic loads and stores to
floating point and vector
Feedback appears to be positive.
* Hans Wennborg has proposed a [schedule for the 3.8
Under this proposal, 3.8 would be branched on the 13th of January 2016 with a
final release targeted for 18th February.
* Craig Topper has provided a [useful description of how patterns are ordered
* David Li has posted an update detailing [remaining steps for size reduction
* When writing your own backend, how should you handle checking the range of
immediates for your assembly parser? Alex Bradbury [explains
## LLVM commits
* A new minimum spanning tree based method of instrumenting code for
profile-guided optimisation was added. This guarantees the minimum number of
CFG edges are instrumented. [r255132](http://reviews.llvm.org/rL255132).
* MatchBSwap in InstCombine will now also detect bit reversals.
* Sample-based profile-guided optimisation memory usage has been reduced by
10x by changing from using a DenseMap for sample records to a std::map.
* An `Instruction::getFunction` method was added. It's perhaps surprising this
didn't exist before. [r254975](http://reviews.llvm.org/rL254975).
* FP16 vector instructions defined in ARMv8.2-A are now supported.
* The EarlyCSE (common subexpression elimination) pass learned to perform
value forwarding for unordered atomics.
* Debug info in LLVM IR can now refer to macros.
* LLVM's developer policy has been updated to detail the currently accepted C
API stability policy and other guidelines.
* A massive rework of funclet-oriented exception handling (needed for Windows
exceptions) has landed. [r255422](http://reviews.llvm.org/rL255422).
## Clang commits
* Clang gained an option to use the new ThinLTO pipeline.
* Hexagon will use the integrated assembler by default.
* dllexport and dllimport attributes are now exposed through the libclang API.
## Other project commits
* ThreadSanitizer gained initial support for PPC64.
More information about the llvm-dev