[llvm-dev] LLVM Weekly - #139, Aug 29th 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 29 04:55:05 PDT 2016


LLVM Weekly - #139, Aug 29th 2016
=================================

If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/139>.

Welcome to the one hundred and thirty-ninth 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

It's a Bank Holiday here in the UK and for once it seems the weather is pretty
good. Perhaps you're looking to get away from LLVM hacking and sit down with a
good book? Gabriel Hjort Blindell (from KTH) has you covered with his [book on
instruction selection](http://www.springer.com/gp/book/9783319340173). As well
as being available in printed and ebook form from Springer, you can grab the
author-final PDF version
[here](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-190112) for free.
"This book presents a comprehensive, structured, up-to-date survey on
instruction selection. The survey is structured according to two dimensions:
approaches to instruction selection from the past 45 years are organized and
discussed according to their fundamental principles and according to the
characteristics of the supported machines instructions."

The release of LLVM and Clang 3.9 is inching ever closer. Binaries for Release
Candidate 3 are [now
available](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104171.html).
Hans Wennborg hopes a final release will happen this week.

The deadline for paper submissions at the LLVM in HPC workshop have been
[extended by one
week](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104169.html). The
deadline is moved from September 1st to September 8th. Talk submission for the
[2016 LLVM Developers' Meeting](http://llvm.org/devmtg/2016-11/) closed last
week. The inaugural LLVM Cauldron will be taking place in Hebden Bridge next
week, on Thursday the 8th September. Our talk lineup has been announced, so
please [take a look](http://llvm.org/devmtg/2016-09/) and register if you'd
like to attend. We are still accepting last minute proposals for birds of a
feather sessions or lightning talks.

llvmlite 0.13.0 has been
[released](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104056.html).
llvmlite is a light-weight Python binding for LLVM, originally created for the
needs of Numba. The new release supports LLVM 3.8.

Neil Henning has written a blog post about [hooking up the mpc micro parser
combinator library to LLVM](http://www.duskborn.com/hooking-up-mpc-llvm/). In
it, he describes parsing and compiling a simple toy language 'neil'. More blog
posts are promised in the series.

MongoDB Engineering have written up a series of
[three](https://engineering.mongodb.com/post/succeeding-with-clangformat-part-1-pitfalls-and-planning/)
[blog](https://engineering.mongodb.com/post/succeeding-with-clangformat-part-2-the-big-reformat/)
[posts](https://engineering.mongodb.com/post/succeeding-with-clangformat-part-3-persisting-the-change/)
about reformatting a large codebase using clang-format.

Christian S. Perone has written an article on how to [JIT TensorFlow graphs
using LLVM and
Python](http://blog.christianperone.com/2016/08/jit-native-code-generation-for-tensorflow-computation-graphs-using-python-and-llvm/).


## On the mailing lists

* Jessica Paquette has been interning at Apple over the summer, working on a
function outlining pass. She is now [seeking feedback on upstreaming
it](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104170.html). This
pass works to reduce total program size by finding sequences of instructions
that could be moved to a separate function. It currently operates at the
Machine IR level. Quentin Colombet offers some useful insight in to [why this
works on MIR rather than LLVM
IR](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104186.html).

* Google Summer of Code is coming to an end, and so we're starting to see some
end-of-project reports posted. See Jia Chen's [report on
CFL-AA](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104128.html),
Vivek Pandya's on [interprocedural register
allocation](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104145.html),
or Roman Gareev's on [vectorisation in
Polly](http://lists.llvm.org/pipermail/llvm-dev/2016-August/103986.html).

* Ed Maste has given an [update on linking FreeBSD kernel and userland using
LLD](http://lists.llvm.org/pipermail/llvm-dev/2016-August/103998.html). It is
now usable for amd64, but more work is needed for other archs such as ARM,
AARch64, i386, and MIPS.

* Chris Bieneman has shared an [update on adding an LLVM runtimes
directory](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104174.html).
The runtimes directory is now supported for building compiler-rt and libcxx.
Chris has shared a rough roadmap and indicates it is now in a state where
people can give it a test drive.

* Dean Michael Berris has posted an RFC on [tooling for XRay trace
analysis](http://lists.llvm.org/pipermail/llvm-dev/2016-August/103984.html).
He describes a tool he has written, `llvm-xray`.

* Kavon Farvardin has posted a [heads-up about an upcoming stackmap version
change](http://lists.llvm.org/pipermail/llvm-dev/2016-August/103978.html). The
stackmap version number will be bumped with the new format in order to address
a major deficiency (the inability to associate call sites with their
functions).

* Elena Lepilkana has shared an [update on the implementation of proposed
FileCheck
enhancements](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104027.html).

* Duncan P. N. Exon Smith is planning to [change the invalidation semantics
for
`ilist::reverse_iterator`](http://lists.llvm.org/pipermail/llvm-dev/2016-August/103997.html)
and is keen for anyone with out-of-tree code relying on the strange existing
semantics to test if they are affected.

* Geoff Berry triggered an in-depth discussion on [the semantics of
invariant.load
metadata](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104101.html).

* Discussion continues about the proposed merging of the AAP and RISC-V
backends. For RISC-V, I've updated the patch set in response to all initial
feedback. The response so far appears to be
[positive](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104137.html).
For AAP, there are some
[questions](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104159.html)
about how large the target community is. Further responses [point
out](http://lists.llvm.org/pipermail/llvm-dev/2016-August/104192.html) how
AAP's attempt to be representative of a number of proprietary out-of-tree
targets perhaps means it should be treated as a special case.


## LLVM commits

* Work on coroutines has reached a new milestone. With the addition of the
coroutine frame building algorithm, simple coroutines can be compiled.
[r279609](http://reviews.llvm.org/rL279609).

* Documentation on using `-opt-bisect-limit` to debug optimisation errors has
been added. [r279881](http://reviews.llvm.org/rL279881).

* libFuzzer's recently added value profiling support has now been documented.
[r279587](http://reviews.llvm.org/rL279587).

* The Lanai backend is no longer experimental, and so is built as one of the
default targets. [r279498](http://reviews.llvm.org/rL279498).

* The NoPHIs property for MachineFunction has been added. This indicates there
are no PHI instructions in the MachineFunction.
[r279573](http://reviews.llvm.org/rL279573).


## Clang commits

* A new clang-tidy check, `readability-non-const-parameter` will warn when
adding const to a function parameter would make the interface safer.
[r279507](http://reviews.llvm.org/rL279507).

* `-f-diagnostics-absolute-paths` is now supported, which will print absolute
paths in diagnostics. [r279827](http://reviews.llvm.org/rL279827).


## Other project commits

* AdressSanitizer started to gain some support for releasing freed memory back
to the OS using madvise. [r279887](http://reviews.llvm.org/rL279887).

* An initial per-thread in-memory logging implementation for use with XRay has
been written. [r279805](http://reviews.llvm.org/rL279805).

* LLDB now has a CMake option that indicates whether to use the builtin
demangler or not. [r279808](http://reviews.llvm.org/rL279808).


More information about the llvm-dev mailing list