[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
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

* 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

* 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
of profile-guided

* 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 mailing list