[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
<http://llvmweekly.org/issue/102>.

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
bitcode](http://gbalats.github.io/2015/12/10/compiling-autotooled-projects-to-LLVM-bitcode.html).


## 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
register
sets](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093172.html). For
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
issues](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093215.html).

* Discussion has continued on adding an HasInaccessibleState attribute.
Vaivaswatha Nagaraj summarised the [key points of the discussion so
far](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093108.html) while
Joseph Tremoulet [shared some thoughts based on his experience on the
Microsoft Phoenix
compiler](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093139.html).

* Alexander Riccio is interested in feedback on his [proposal to integrate
more static analysis
tests](http://lists.llvm.org/pipermail/cfe-dev/2015-December/046384.html).
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
types](http://lists.llvm.org/pipermail/cfe-dev/2015-December/046384.html).
Feedback appears to be positive.

* Hans Wennborg has proposed a [schedule for the 3.8
release](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093273.html).
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
by
TableGen](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093239.html).

* David Li has posted an update detailing [remaining steps for size reduction
of profile-guided
optimisation](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093170.html).

* When writing your own backend, how should you handle checking the range of
immediates for your assembly parser? Alex Bradbury [explains
how](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093093.html).


## 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.
[r255334](http://reviews.llvm.org/rL255334).

* 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.
[r255389](http://reviews.llvm.org/rL255389).

* 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.
[r255010](http://reviews.llvm.org/rL255010).

* The EarlyCSE (common subexpression elimination) pass learned to perform
value forwarding for unordered atomics.
[r255054](http://reviews.llvm.org/rL255054).

* Debug info in LLVM IR can now refer to macros.
[r255245](http://reviews.llvm.org/rL255245).

* LLVM's developer policy has been updated to detail the currently accepted C
API stability policy and other guidelines.
[r255300](http://reviews.llvm.org/rL255300).

* 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.
[r254927](http://reviews.llvm.org/rL254927).

* Hexagon will use the integrated assembler by default.
[r255127](http://reviews.llvm.org/rL255127).

* dllexport and dllimport attributes are now exposed through the libclang API.
[r255273](http://reviews.llvm.org/rL255273).


## Other project commits

* ThreadSanitizer gained initial support for PPC64.
[r255057](http://reviews.llvm.org/rL255057).


More information about the llvm-dev mailing list