[llvm-dev] LLVM Weekly - #199, Oct 23rd 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 23 11:22:35 PDT 2017


LLVM Weekly - #199, Oct 23rd 2017
=================================

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

Welcome to the one hundred and ninety-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](https://www.linkedin.com/in/alex-bradbury/). 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

The [Zig](http://ziglang.org/) programming language has just had its [first
beta
release](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118265.html).
The [release notes](http://ziglang.org/download/0.1.1/release-notes.html) do a
good job of introducing the "Zen of Zig".

The [2017 US LLVM Developers' Meeting](http://llvm.org/devmtg/2017-10/) was
held last week and was a huge success. As in previous yours, talks were
recorded and will be available online in due course. There should be an
announcement on the mailing list once they're available, and of course I'll
spread the word here in LLVM Weekly. Tanya will be sending a survey out to
attendees soon - be sure to fill it out.


## On the mailing lists

* Chandler Carruth has posted an RFC on [moving to the new pass manager by
default](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118280.html).
Greg Bedwell provides some [compile time and memory usage
data](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118306.html) from
some internal benchmarks.

* "rNoz" has started a thread [asking for advice on source-to-source
transformations using
Clang](http://lists.llvm.org/pipermail/cfe-dev/2017-October/055756.html).
There haven't been any responses yet, but I hope that will change. This really
is a great example of how to ask a question well - outlining the reasoning
behind the question and demonstrating the research that has already been done
in order to try to answer it.

* Justin Bogner is
[proposing](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118346.html)
to move to always using short-hand MIR syntax for declaring vreg classes and
register banks in a function body.

* Eric Christopher is seeking feedback on his [plan for supporting
mtune](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118344.html).
Krzysztof Parzyszek
[asks](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118356.html)
about features having non-boolean values (e.g. cache sizes).

* Andrew Kelley is [interested in adding an LLVM feature to determine the
upper bound on the stack size for the current
function](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118357.html)
(if possible).

* Elad Colen has posted an [RFC on adding intrinsics for masked vector integer
division and
remainder](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118257.html).

* Sander De Smalen has started to post patches to implement MC layer support
for AArch64 SVE, and is [seeking
feedback](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118303.html).

* Sean McCall asks about the [policy for adding third-party
dependencies](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118301.html).
In this instance, adding an external JSON library dependency to clangd in
clang-tools-extra. Chandler Carruth points out that [licensing can be a
concern](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118313.html).

* Ivan Kosarev has posted an RFC on [returing !tbaa.struct tags in favour of
plan !tbaa
tags](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118284.html). The
change is motivated by the fact that !tbaa.struct tags must be dropped by
transformations like scalar replacement of aggregates.

* Matthew Simpson is [about to add a new called value propagation
pass](http://lists.llvm.org/pipermail/llvm-dev/2017-October/118270.html), to
be run just after interprocedural sparse conditional constant propagation.
This uses the recently added !callees metadata to propagate values used for
indirect calls.


## LLVM commits

* `utils/update_mir_test_checks.py` has been introduced, to allow CHECK lines
for MIR files to be automatically (re)generated in a similar way to
`update_llc_test_checks.py`. A large portion of in-tree MIR tests have since
been updated using this tool. [r316057](http://reviews.llvm.org/rL316057).

* The PowerPC backend gained MachineInstr peephole optimisations to eliminate
redundant sign- and zero-extension.
[r315888](http://reviews.llvm.org/rL315888).

* The SparsePropagation can now perform interprocedural analysis.
[r315919](http://reviews.llvm.org/rL315919).

* The lib/Fuzzer directory has been deleted, as the code has been moved to
compiler-rt. [r315937](http://reviews.llvm.org/rL315937).

* Support for `!callees` metadata has been added. This indicates the possible
callees of an indirect call. [r315944](http://reviews.llvm.org/rL315944).

* Support for codegen of RISC-V ALU operations has been committed.
[r316188](http://reviews.llvm.org/rL316188).

* docs/XRay.rst and docs/XRayExample.rst document how to generate flamegraphs
from XRay traces. [r316192](http://reviews.llvm.org/rL316192).


## Clang commits

* Attributes in square brackets, as proposed for C++2x, are now supported and
can be enabled with `-fdouble-square-bracket-attributes`.
[r315856](http://reviews.llvm.org/rL315856).

* clang-refactor will now print new code after refactoring by default rather
than directly editing the source file.
[r316212](http://reviews.llvm.org/rL316212).


## Other project commits

* Memory usage of lld has been optimised by assuming mergeable input sections
are smaller than 4GiB. As reported in the commit message, lld's memory usage
when linking clang with debug info drops from 2.788GiB to 2.019GiB with this
patch. [r316280](http://reviews.llvm.org/rL316280).

* The lldb-server test suite can now be run against the debugserver.
[r316010](http://reviews.llvm.org/rL316010).


## Review corner

The LLVM Weekly review corner serves to highlight patches that are stuck
waiting awaiting review, or work from first-time contributors. See
[here](http://llvmweekly.org/reviewcorner) for more information and how to
submit you work for inclusion. Of course the hope is that highlighting these
patches will enable LLVM Weekly readers will step up and help to get them
merged. I'll be reporting back each week on any activity generated on these
patches, as well as sharing a new batch. If you want your patch included you
must submit it via the linked form.

There was only one patch submission last week, which I'm pleased to report did
see further review activity (though a [second opinion is being
sought](https://reviews.llvm.org/D38718)). Thank you to Roman Lebedev and
Daniel Marjamäki for contributing review comments.

There are two patch submissions this week:

* "Aggressive operand folding for addressing mode based complex pattern match
for X86 LEA". [D35014](https://reviews.llvm.org/D35014), patch by Jatin
Bhateja.

* "Allow guessInstructionProperties=0 to work by explicitly setting currently
inferred properties for TargetOpcode:: pseudoinstructions."
[D37065](https://reviews.llvm.org/D37065), patch by Alex Bradbury.


More information about the llvm-dev mailing list