[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