LLVM Weekly - #465, November 28th 2022
Welcome to the four hundred and sixty-fifth 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 http://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 and events
Stefan Gränitz wrote a blog post about troubleshooting the LLDB implementation of the GDB JIT interface.
Shafik Yaghmour blogged about exploring Clang’s enum implementation and how we catch undefined behaviour.
According to the LLVM calendar in the coming week there will be:
Office hours with the following hosts: Johannes Doerfert.
Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, pointer authentication, OpenMP, loop optimisations, OpenMP in Flang, HLSL, SPIR-V, MLGO, and the GPU working group.
For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tom Stellard provided an update on work to prepare for moving the project to GitHub pull requests. Everyone is invited to review the existing tickets related to this.
Nuno Lopes started a discussion to clarify the semantics of NaN in LLVM IR.
Carlos Galvez initiated an RFC discussion on improving the code review process for clang-tidy.
Jake Egan is seeking feedback on a proposal to make the libc++ test suite standalone (i.e. so it can be configured/run without needing to build the runtime).
Damian Rouson shared an RFC on introducing the ‘Caffeine’ parallel runtime library for Flang.
LLVM commits
GlobalISel for PPC gained support for some basic logic instructions, arithmetic, and floating point instructions. be4a1df, 2b1e895, d9143ce.
The deprecated
llvm::array_lengthof
method was removed. 35df882.Codegen and MC support was committed for the experimental RISC-V Zca, Zcf, and Zcd extensions. 219417b, 16bf359, 0dbc52a.
Support was added to AArch64 for the 2022 general data-processing instructions as well as the v8.9-A/v9.4-A debug and PMU extensions. cb261e3, b0d4045.
Generic operand bundle lowering was implemented for KCFI (Kernel Control Flow Integrity). cacd3e7.
Register allocation hints are now used in the RISC-V backend in order to improve the use of compressed instructions. a2b5b58.
Many, many patches were landed to convert uses of LLVM’s
Optional
class tostd::optional
. e.g. edace86, b54cd3f.
Clang commits
clangd --check
can now be used to time clang-tidy checks. fd733a6.The Clang user manual now consistently uses Sphinx’s
.option
directive. 799b6b9.Clang’s dataflow analysis gained a widening API. 84dd12b.
Zstd is now supported in .pcm files. fa7bc38.
Other project commits
LoongArch register definitions and operations were added to LLDB. ed34590.
The libc++ AppleClang requirement was bumped to 14. 396fbe2.
ASan gained an initial patch that is part of a series to improve C++ container overflow detection. 1c5ad6d.
MLIR gained a vectorisation pass for sparse loops. 99b3849.