[LLVMdev] LLVM Weekly - #78, June 29th 2015

Alex Bradbury asb at asbradbury.org
Mon Jun 29 03:47:30 PDT 2015


LLVM Weekly - #78, June 29th 2015
================================

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

Welcome to the seventy-eighth 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.

I'm in the Bay Area this week for the [second RISC-V
workshop](http://riscv.org/workshop-jun2015.html) where my colleague and I
will of course be talking about [lowRISC](http://www.lowrisc.org). If you're
not able to make it, keep an eye on the lowRISC blog which I intend to keep
updating semi-live with notes from the talks and presentations.


## News and articles from around the web

Hans Wennborg has shared the [release plan for LLVM/Clang
3.7](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087060.html). This
would see the release branch created on 14th July, with a final release
targeted for 21st August.

A [detailed
analysis](http://www.cl.cam.ac.uk/~pes20/cerberus/notes50-2015-05-24-survey-discussion.html)
of the results of the "What is C in practice" survey has now been posted. The
survey gained around 300 responses, and aims to help guide the definition of a
formal model for the de facto standard of C (i.e. C as it is used rather than
purely as specified in the ISO standard).

The 3.6.2-rc1 LLVM/Clang release [has been
tagged](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087111.html). As
always, testing is encouraged.


## On the mailing lists

Unfortunately at the time of writing GMANE seems to be having some problems,
so for this week I'll be using links to the pipermail archives of the relevant
mailing list posts.

* Adrian Prantl has a proposal for [improving the quality of debug locations
and of
DbgValueHistoryCalculator](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087109.html).
This will involve adding new heuristics so DbgValueHistoryCalculator is
smarter at creating ranges.

* Sanjoy Patel kicked off a discussion about [conversion between bitwise AND
and short-circuit evaluation for
booleans](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087225.html).
In particularly, he's wanting to ensure that short circuit evaluation is not
used (though as is pointed out in the thread, the benefit of saving the branch
is highly microarchitecture dependent).

* Dan Liew has posted an RFC on [improving the testing of exported LLVM CMake
targets](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087246.html). He
has produced a [toy project](https://github.com/delcypher/llvmCMakeImportDemo)
making use of these targets, which could be used to help ensure they stay in
working shape.

* Bjarke Roune is proposing [functionality to determine when a posion value is
guaranteed to produce undefined
behaviour](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087234.html),
with the aim of improving handling of nsw/inbounds and similar in LLVM passes
such as scalar evolution.

* Philip Reames has responded to a question from Chandler Carruth with a good
summary of the [motivation for supporting inlining through statepoints and
patchpoints](http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-June/087222.html).


## LLVM commits

* The InterleavedAccess pass has been introduced to identify interleaved
memory accesses so they can be transformed into target-specific intrinsics.
[r240751](http://reviews.llvm.org/rL240751).

* Initial serialisation of machine instructions has been added, representing
MachineInstructions in YAML. [r240295](http://reviews.llvm.org/rL240295),
[r240425](http://reviews.llvm.org/rL240425), and more.

* The CaptureTracking pass has been optimised to improve performance on very
large basic blocks. [r240560](http://reviews.llvm.org/rL240560).

* A parser for LLVM stackmap sections has been added and made available
through llvm-readobj. [r240860](http://reviews.llvm.org/rL240860).


## Clang commits

* The recently added nullability attributes have been extensively documented.
[r240296](http://reviews.llvm.org/rL240296).

* constexpr can now be specified in condition declarations.
[r240707](http://reviews.llvm.org/rL240707).


## Other project commits

* The README for the COFF linker in LLD has been updated with new performance
numbers. It's now 3.5 seconds to self-host (was previously 5 seconds), and
this compared 7 seconds with the MSVC linker and 30 seconds with the old LLD.
[r240759](http://reviews.llvm.org/rL240759).

* The safestack TODO list in compiler-rt has been updated.
[r240473](http://reviews.llvm.org/rL240473).

* LLD gained support for thread-local storage in MachO objects.
[r240454](http://reviews.llvm.org/rL240454).

* Polly has had a meaningful improvement in compile time through enabling the
small integer optimisation of the ISL (Integer Set Library). Polybench
benchmarks on average take 20% less time to compile.
[r240689](http://reviews.llvm.org/rL240689).



More information about the llvm-dev mailing list