Alex Bradbury via llvm-dev
2020-Jun-08 18:31 UTC
[llvm-dev] LLVM Weekly - #336, June 8th 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).