[llvm-dev] LLVM Weekly - #336, June 8th 2020

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 8 11:31:05 PDT 2020


LLVM Weekly - #336, June 8th 2020
=================================

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

Welcome to the three hundred and thirty-sixth 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

Nuno P Lopes and John Regehr have authored a new blog post on [tracking
miscompilations in LLVM using its own unit
tests](https://blog.regehr.org/archives/1737), which makes use of Alive2.


## On the mailing lists

* Chris Lattner shared a [proposal for contentious decision making in
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142017.html), and is
using it recursively to get feedback on the process itself. The target end
date is June 12th.

* Andrzej Warzynsk started an RFC thread on non-trivial refactoring to [move
some Clang frontend/driver/diagnostics code to
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2020-June/141994.html). This
would allow reuse by Flang. Hanna Kruppe fed back that [the refactoring was
unlikely to result in reuse by
Rust](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142004.html). Richard
Smith shared some [detailed thoughts on the challenges of reusing some of this
code outside of
Clang](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142024.html). Chris
Lattner
[suggests](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142054.html)
that Clang moving to MLIR for code generation is a path forwards for factoring
ABI lowering out of Clang. This thread split off to a [new sub-thread on
fixing the function-ABI interface between Clang and
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142055.html).

* Mikhail Goncharov reports that [pre-merge checks are switching from Jenkins
to use
Buildkite](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142032.html).

* Michael Kruse proposed [removing the 'KillTheDoctor'
utility](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142099.html) from
the LLVM source tree as it seems to no longer be needed.

* Christopher Di Bellow is [seeking help with reviews for spaceship operator
support for std::string and
std::vector](http://lists.llvm.org/pipermail/libcxx-dev/2020-June/000829.html).

* Zoe Carver [sought feedback on a series of smart pointer lifetime
optimisations](http://lists.llvm.org/pipermail/cfe-dev/2020-June/065738.html).
In the following discussion, a subset of these were found to be unsound.

* Ruijie Fang will be working with the LLVM community as part of GSoC to
improve hot/cold splitting to aggressively outline small blocks and [shared
the current project
plan](http://lists.llvm.org/pipermail/llvm-dev/2020-May/141974.html.

* James Y Knight
[proposed](http://lists.llvm.org/pipermail/libcxx-dev/2020-June/000830.html)
libcxx define `_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES` in `-std=gnu++17` to
keep features removed in C++17, as GNU has done in libstdc++.


## LLVM commits

* `-fstack-clash-protection` was implemented for SystemZ.
[515bfc6](https://reviews.llvm.org/rG515bfc66eac).

* Documentation was started explaining how to update debug info in various
kinds of code transformation.
[b429a0f](https://reviews.llvm.org/rGb429a0fef04),
[24660ea](https://reviews.llvm.org/rG24660ea11cb).

* Range checks for jump tables are now eliminated for WebAssembly as they are
not necessary. [f99d5f8](https://reviews.llvm.org/rGf99d5f8c32a).

* Support was added for call site info for call instruction with delay slots
on MIPS. [dd1bc59](https://reviews.llvm.org/rGdd1bc59b729).

* A gc-live bundle was introduced for the GC arguments of a statepoint.
[0e7c770](https://reviews.llvm.org/rG0e7c77053f5),
[3d40c75](https://reviews.llvm.org/rG3d40c751898).

* The VE backend now supports branch instructions and logical operations in
the MC layer. [117c0d7](https://reviews.llvm.org/rG117c0d7c1c1),
[8948eab](https://reviews.llvm.org/rG8948eab28a4).

* Lit will now just report "Passed" and "Failed" rather than "Expected Passes"
and "Unexpected Failures". [99d6e05](https://reviews.llvm.org/rG99d6e05e714).

* `MachineBasicBlock::updateTerminator` now requires an explicit layout
successor rather than trying to infer the correct destination block from the
successor list. [1978309](https://reviews.llvm.org/rG1978309db1f).


## Clang commits

* Support was added for matrix index expressions.
[8f3f88d](https://reviews.llvm.org/rG8f3f88d2f50).

* `__bf16` was added as a new storage-only Bfloat16 C type supported by Arm
and AArch64 targets. [ecd682b](https://reviews.llvm.org/rGecd682bbf5e).

* Clang matches GCC by supporting `[[gnu::attributes]]` in C2x mode.
[522934d](https://reviews.llvm.org/rG522934da1f0).

* New clang options for basic block sections `fbasic-block-sections` and
`-funique-basic-block-section-names` were added.
[e0bca46](https://reviews.llvm.org/rGe0bca46b085).

* Clang now matches GCC by defaulting to `-fomit-frame-pointer` when
optimisation is enabled for AArch32 Linux targets.
[8eda716](https://reviews.llvm.org/rG8eda71616fe).

* Some pairs of `-ffoo/-fno-foo` options have been migrated to OptInFFlag and
OptOutFFlag. [e5158b5](https://reviews.llvm.org/rGe5158b52730),
[78702de](https://reviews.llvm.org/rG78702dec3bb).


## Other project commits

* LLVM's libc gained implementations of ceil(f), floor(f), and trunc(f).
[1caedd0](https://reviews.llvm.org/rG1caedd0c550).

* A muldi3 assembly implementation was added to compiler-rt for RISC-V.
[e31ccee](https://reviews.llvm.org/rGe31ccee1b01).

* The Dexter debug experience testing tool was extended with a
DexLimitStepsCommand and a ConditionalController.
[c6aa829](https://reviews.llvm.org/rGc6aa829644f).

* libcxx will now link against libatomic when it is found.
[e018435](https://reviews.llvm.org/rGe0184357fc7).


More information about the llvm-dev mailing list