[llvm-dev] LLVM Weekly - #247, September 24th 2018

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 24 11:22:32 PDT 2018

LLVM Weekly - #247, September 24th 2018

If you prefer, you can read a HTML version of this email at

Welcome to the two hundred and forty-seventh 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

LLVM 7.0.0 has been
Thanks to all contributors, testers, packers, and reviewers!

The new LLVM Foundation Board of Directors has been
As highlighted in the blog post, thanks are due to David Kipping for acting as
treasurer over the past 4 years.

Version 1.18 of the TTA-based Co-Design Environment (TCE) has been
It is "a toolset for design and
programming of customized co-processors (typically DSPs) based on
the Transport Triggered Architecture (TTA)." The new release adds support for
LLVM 7.0, amongst other changes.

## On the mailing lists

* Eric Christopher
promoting WebAssembly from an 'experimental' to a 'normal' backend. There is
broad support for this. A number of respondents suggest it would be worth
promoting the RISC-V backend too. As I
on the mailing list, I'm intending to propose this in the next few weeks.

* David Spickett has shared an RFC on [new Clang target selection options for

* Jonas Devlieghere started an RFC thread on [adding support to LLDB for
This should make it much easier to reproduce an issue or crash.

* Alex Bradbury has
on the implementation status of his RFC on expanding atomic LL/SC loops.

* Reid Kleckner proposes [storing basic block order in
to speed up local dominance computations.

* Nico Weber started a discussion on whether functions returning bool should
use [true or false for
The consensus view seems to be that true for success is most logical, although
there is plenty of legacy code in LLVM that doesn't (particularly the

* David Greene wonders if there is interest in a [fast BitVector

* Paul Anderson is looking for feedback on [adding support to the Clang Static
Analyzer for the 'SARIF' output

## LLVM commits

* A new PassInstrumentation framework has been committed. This provides common
infrastructure to implement pass execution debugging features such as
print-before, print-after, opt-bisec, time-passes etc.

* The AArch64 assembly parser can now handle more complex expressions as valid
relocatable operands. [r342455](https://reviews.llvm.org/rL342455).

* The speed of TableGen's `-den-dag-isel` generator has been further improved.
Extra caching of matching predicates saves ~25 secons of a debug build of X86
`-gen-dag-isel`. [r342467](https://reviews.llvm.org/rL342467).

* The RISC-V backend gained codegen support for i8/i16/i32 atomicrmw using the
'A' (atomics) instruction set extension. This makes use of the atomics
lowering strategy [proposed in an llvm-dev

* Dependency breaking instructions can now be described in TableGen using the
STIPredicate TableGen class. [r342555](https://reviews.llvm.org/rL342555).

## Clang commits

* Clang's DeclarationName data structure saw various optimisations and
refacgorings. This cuts the runtime of parsing Boost by ~0.8%.

* Clang's code completion gained support for filenames in include directives.

## Other project commits

* LLDB now has documentation on scripted breakpoint resolvers.

* libcxx gained support for compiling with `[[nodiscard]]` attributes present
in pre-C++2a versions. It may also add `[[nodiscard]]` to extra functions
(users may opt out of this by defining `_LIBCPP_DISABLE_NODISCARD_EXT`).

* LLD can now optimize redundant instructions in global access sequences for
PPC64. [r342602](https://reviews.llvm.org/rL342602).

More information about the llvm-dev mailing list