[llvm-dev] LLVM Weekly - #328, Apr 13th 2020

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 13 06:19:07 PDT 2020

LLVM Weekly - #328, Apr 13th 2020

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

Welcome to the three hundred and twenty-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](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

I didn't spot any particular LLVM-related news or blog posts this week. As
always, I welcome people emailing me tips on things to include.

## On the mailing lists

* Mircea Trofin authored an RFC on [applying machine learning for optimisation
policies in
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140763.html). The
described approach has been used to produce a policy for inline for size on
x86-64. "Machine learning, in particular reinforcement learning, can address
the tensions found in manual heuristics: once features are extracted from the
program, the way they are combined and tuned can easily be scaled up through
automation, improving effectiveness and generality."

* The upstreaming of the F18 Fortran frontend as Flang [has now been

* Louis Dionne started a thread to [clarify the supported ways to build
libc++, libc++abi and
This generated a range of useful answers, e.g. from [Shoaib
Meenai](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140757.html) and
[Petr Hosek](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140771.html).

* Johannes Doerfert started a discussion on [reusing OpenMP infrastructure
between LLVM/Clang and

* Amara Emerson posted an RFC on [promoting experimental reduction intrinsics
to first class

* Kai Wang started a discussion about [vscale and the RISC-V vector

* Jonas Devlieghere proposed [upstreaming reproducer capture/replay of the API
test suite in

* Bruno Conde Kind [writes to get feedback on adding AnghaBench to the LLVM
test suite](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140659.html).
This generated discussion related to the fact these tests aren't executable,
[querying the trade-offs made in creating this benchmark

* Konstantin Schwarz started a discussion on [extended inline assembler
support in

* Chris Lattner [queried if functions to dynamically enable and disable
multithreading support in LLVM should be

## LLVM commits

* Initial fusion for load/multiple/store chains of matrix operations was
committed and an option was added to use row-major matrix layout as default.

* MC layer support for the proposed RISC-V bit manipulation extension was
added. Target features are prefixed with "experimental-" as the extension is
not yet finalised. [fae40bd](https://reviews.llvm.org/rGfae40bd5a1d).

* Sparse conditional constant propagation (SCCP) was improved to make use of
ranges for predicate info conditions.

* The CFGPrinter gained heat coloring based on the relative 'hotness' of each
basic block. [8b67853](https://reviews.llvm.org/rG8b67853a83c).

* LLVM now tries to use a single enum internally to represent FP rounding
mode. [c7ff5b3](https://reviews.llvm.org/rGc7ff5b38f27).

* `-debugify-and-strip-all` was added to add debug info before a pass and
remove it after, making it easier to test for cases where debug info affects
codegen. [f71350f](https://reviews.llvm.org/rGf71350f05ae).

## Clang commits

* In order to respect `-fno-unroll-loops` with LTO, Clang will now add
`llvm.loop.unroll.disable` metadata when that option is enabled.

* A new clang-tidy check was added, llvmlibc-implementation-in-namespace,
which will ensure all llvm-libc implementations fall within the `__llvm_libc`
namespace. [00a5755](https://reviews.llvm.org/rG00a57558978).

* Codegen was implemented for the OpenMP 5.0 iterator constructor.

* A new `-fsanitize-coverage=inline=bool-flag` option was added.

* The RISC-V driver now learned to recognise experimental unratified
extensions. As agreed via RFC on the mailing list, such extensions can only be
enabled with the use of an explicit version number and the use of the
`-menable-experimental-extensions` flag.

## Other project commits

* Flang (previously known as f18) has now been merged as an LLVM sub-project.

* As part of the Propeller framework for post link code layout, LLD gained
support for basic block sections.

* MLIR gained documentation on the declarative pass specification and updated
documentation on canonicalization.

* concept.same was added to libcxx.

* Scripts were added for building libc++ and libc++abi on apple platforms.

* Hexagon support was added to libunwind.

More information about the llvm-dev mailing list