[llvm-dev] LLVM Weekly - #191, Aug 28th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 28 07:45:21 PDT 2017


LLVM Weekly - #191, Aug 28th 2017
=================================

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

Welcome to the one hundred and ninety-first 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

LLVM 5.0.0-rc3 has [now been
tagged](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116873.html). As
Hans Wennborg makes clear, the hope is this will be a true "release candidate"
and no additional changes will be needed prior to the final release.

The Flang Fortran front-end to LLVM has been
[announced](http://lists.flang-compiler.org/pipermail/flang-announce_lists.flang-compiler.org/2017-August/000001.html).
The GitHub repo appeared with little fanfare a few months ago, but this
announcement clarifies the current state of the codebase and points to a
number of new mailing lists for those wanting to collaborate on the effort.

Emscripten is making progress towards [using the upstream LLVM WebAssembly
backend](https://github.com/kripken/emscripten/issues/5488) by default.

The [LLVM Heat Printer](https://github.com/rcorcs/llvm-heat-printer) utility
colours callgraphs or CFGs based on execution frequency.

[unformat](https://github.com/johnmcfarlane/unformat) is a cunning tool which
generates an appropriate .clang-format file for a given codebase, based on the
conventions that are currently being used.


## On the mailing lists

* I've been considering a slight expansion to LLVM Weekly's format and would
greatly appreciate additional feedback. Specifically, I'm looking to introduce
a 'review corner' section to help patch authors advertise their work when it's
stuck in the review process, in the hope of attracting more reviewers. It may
also be useful to highlight patches from first-time contributors. I've written
up an [RFC on
this](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116898.html) which
goes in to more detail about the motivation and how it might work.

* Paul Robinson has revived the issue of [moving to C++11/14 being the default
in a future Clang
release](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055176.html).
Sylvestre Ledru
[reported](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055175.html)
that such a move would resolve more than 70 build issues in Debian.

* Tom Stellard
[wonders](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116857.html) if
anyone is still using the LLVM python bindings, and if they can be removed
from the tree. If they are useful to you or you're able to help maintain them,
now is the time to step up.

* Malhar Thakkar has shared his [final
report](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055169.html) on
his GSoC project. "The aim of my project was to add
support to RetainCountChecker to perform reference counting of objects in
frameworks written in C, primarily for the Integer Set Library (ISL)."

* Martin J. O'Riordan started a thread on [extending tablegen's foreach to
work with multiclass and
defm](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116714.html). The
thread then moved on to consider possible alternatives to TableGen, e.g.
[Python](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116776.html).

* Péter Szécsi has shared some
[measurements](http://lists.llvm.org/pipermail/cfe-dev/2017-August/055171.html)
related to loop unrolling in the Clang Static Analyzer (time taken for
analysis and coverage).

* Alex Bradbury started a thread on [separating instruction and pattern
definitions in LLVM
backends](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116635.html).
Their seemed to be support for this approach, though Daniel Sanders
[warned](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116712.html)
about gotchas related to inference of properties. [Editor's note: This
discussion actually happened last week, but I forgot to include it. The RISC-V
patches [awaiting
review](https://reviews.llvm.org/differential/?authors=asb&order=updated) have
been updated to use this approach (and again, I'd _really_ appreciate if
anyone has time to review so I can get more of these landed). I've been
[working on](https://reviews.llvm.org/D37065) patches to allow
guessInstructionProperties=0 to be set, which helps to avoid surprises with
inferred instruction properties.]

* Sam Elliott has posted a heads-up about the [new optimization remark emitter
API](http://lists.llvm.org/pipermail/llvm-dev/2017-August/116723.html). All
in-tree passes have been migrated, but out-of-tree passes will need similar
modifications.

* Jan Kratochvil is seeking input on [supporting the DWZ 'compressed' DWARF
format in
LLDB](http://lists.llvm.org/pipermail/lldb-dev/2017-August/012656.html).


## LLVM commits

* A backend for the ARC processor core has been added.
[r311667](http://reviews.llvm.org/rL311667).

* A new library, FuzzMutate has been committed. This provides structured
fuzzing for LLVM IR. [r311402](http://reviews.llvm.org/rL311402).

* libFuzzer has been moved from LLVM to compiler-rt.
[r311405](http://reviews.llvm.org/rL311405).

* Cache size and associativity can now be modeled in TargetTransformInfo.
[r311647](http://reviews.llvm.org/rL311647).

* The X86 backend has become better at folding read-modify-write sequences to
X86 read-modify-write instructions.
[r311806](http://reviews.llvm.org/rL311806).

* The Cortex-A75 and A-55 are now recognised by LLVM.
[r311316](http://reviews.llvm.org/rL311316).

* MC-layer support for ARMv8.3-A Javascript conversion operations has been
added. [r311448](http://reviews.llvm.org/rL311448).

* Debug messages have been added to SelectionDAG getNode methods, to aid
debugging instruction selection. Extra debug messages have also been added to
AArch64 legalisation and custom lowering.
[r311444](http://reviews.llvm.org/rL311444),
[r311533](http://reviews.llvm.org/rL311533).

* The llvm.experimental.constrained.fma intrinsic has been introduced.
[r311629](http://reviews.llvm.org/rL311629).


## Clang commits

* The new `-fclang-abi-compat` flag can be used to request Clang attempt to
remain ABI-compatible with previous ABI versions.
[r311823](http://reviews.llvm.org/rL311823).

* The StmtDataCollector class in clang analyzer is now customisable through
subclassing and use of the helpers in StmtDataCollectors.inc.
[r311569](http://reviews.llvm.org/rL311569).

* Clang refactoring gained initial support for AST selections.
[r311655](http://reviews.llvm.org/rL311655).

* The `-fsanitize-coverage=pc-table` and
`fsanitize-coverage=inline-8bit-counters` command line options have been
documented. [r311719](http://reviews.llvm.org/rL311719).


## Other project commits

* CMakeLists.txt for building and running SPEC2017 has been added to the LLVM
test-suite. [r311395](http://reviews.llvm.org/rL311395).

* LLDB learned to support the DWP (DWARF package) debug info format.
[r311775](http://reviews.llvm.org/rL311775).

* Polly now tracks and can print a range of additional statistics about the
optimisations it applies. [r311553](http://reviews.llvm.org/rL311553).

* More DOE proxy apps have been added to the LLVM test suite. miniAMR (stencil
calculations), miniFE (finite element codes), and Pathfinder (graph search).
[r311398](http://reviews.llvm.org/rL311398),
[r311411](http://reviews.llvm.org/rL311411),
[r311413](http://reviews.llvm.org/rL311413).


More information about the llvm-dev mailing list