LLVM Weekly - #336, June 8th 2020
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. Subscribe to future issues at https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to asb@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, which makes use of Alive2.
On the mailing lists
-
Chris Lattner shared a proposal for contentious decision making in LLVM, 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. This would allow reuse by Flang. Hanna Kruppe fed back that the refactoring was unlikely to result in reuse by Rust. Richard Smith shared some detailed thoughts on the challenges of reusing some of this code outside of Clang. Chris Lattner suggests 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.
-
Mikhail Goncharov reports that pre-merge checks are switching from Jenkins to use Buildkite.
-
Michael Kruse proposed removing the 'KillTheDoctor' utility from the LLVM source tree as it seems to no longer be needed.
-
Christopher Di Bella is seeking help with reviews for spaceship operator support for std::string and std::vector.
-
Zoe Carver sought feedback on a series of smart pointer lifetime optimisations. 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 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. -
Documentation was started explaining how to update debug info in various kinds of code transformation. b429a0f, 24660ea.
-
Range checks for jump tables are now eliminated for WebAssembly as they are not necessary. f99d5f8.
-
Support was added for call site info for call instruction with delay slots on MIPS. dd1bc59.
-
A gc-live bundle was introduced for the GC arguments of a statepoint. 0e7c770, 3d40c75.
-
The VE backend now supports branch instructions and logical operations in the MC layer. 117c0d7, 8948eab.
-
Lit will now just report "Passed" and "Failed" rather than "Expected Passes" and "Unexpected Failures". 99d6e05.
-
MachineBasicBlock::updateTerminator
now requires an explicit layout successor rather than trying to infer the correct destination block from the successor list. 1978309.
Clang commits
-
Support was added for matrix index expressions. 8f3f88d.
-
__bf16
was added as a new storage-only Bfloat16 C type supported by Arm and AArch64 targets. ecd682b. -
Clang matches GCC by supporting
[[gnu::attributes]]
in C2x mode. 522934d. -
New clang options for basic block sections
fbasic-block-sections
and-funique-basic-block-section-names
were added. e0bca46. -
Clang now matches GCC by defaulting to
-fomit-frame-pointer
when optimisation is enabled for AArch32 Linux targets. 8eda716. -
Some pairs of
-ffoo/-fno-foo
options have been migrated to OptInFFlag and OptOutFFlag. e5158b5, 78702de.
Other project commits
-
LLVM's libc gained implementations of ceil(f), floor(f), and trunc(f). 1caedd0.
-
A muldi3 assembly implementation was added to compiler-rt for RISC-V. e31ccee.
-
The Dexter debug experience testing tool was extended with a DexLimitStepsCommand and a ConditionalController. c6aa829.
-
libcxx will now link against libatomic when it is found. e018435.