LLVM Weekly - #572, December 16th 2024
Welcome to the five hundred and seventy-second 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 via email: asb@asbradbury.org, or Mastodon: @llvmweekly@fosstodon.org / @asb@fosstodon.org, or Bluesky: @llvmweekly.org / @asbradbury.org.
News and articles from around the web and events
Thomas Fransham blogged about their GSoC project to add LLVM and Clang plugin support for Windows.
Alex Denisov and Amir Rajan blogged about Lightstorm, a minimalistic Ruby compiler using MLIR.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Phoebe Wang, Johannes Doerfert.
- Online sync-ups on the following topics: pointer authentication, vectoriser improvements, security group, new contributors, OpenMP, C/C++ lanugage working group, Flang, floating point, RISC-V, LLVM libc, MLIR.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Chris Bieneman announced that election test emails have gone out (and later that a second test went out). Reid Kleckner posted a timelinine for the planned elections.
Michal Paszkowski proposed promoting SPIR-V to an official target.
Renato Golin mooted a new version scheme for LLVM, moving towards yearly releases. Most respondents so far stated a preference for at least two releases per year.
Stella Laurenzo proposes blackout period for controversial MLIR design decisions until the new year, warning that it’s been particularly active lately and some people are nearing burnout.
Ramkumar Ramachandra shares the good news that Alive2 now supports X86 vector intrinsics.
Carlos Galvez started a discussion on deprecation warnings for clang-tidy.
Hendrik Hübner started a discussion on potentially adding a PDP11 target to LLVM.
Peter Smith shared further thoughts on the printf code size optimisation thread following a discussion at the LLVM embedded rountable.
Oren Benita Ben Simhon advertised a new LLVM meetup group in Israel.
Wang Pengcheng wondered about changing the default RISC-V configuration to rva23u64.
Sergei Barannikov would like to add support for TableGen'erating SDNode descriptions and has had nothing but positive feedback so far.
Rolf Morel posted a detailed MLIR RFC on introducing a linalg.contract op.
Andrzej Warzynski kicked off an MLIR RFC discussion on restrucing the usage of 0-D vectors in the vector dialect.
Elizaveta Noskova wrote up a description of a series of patches to support splitting save and restore points during shrink-wrapping. Mikhail Gudim linked to an alternative approach.
LLVM commits
LLVM now has a guide on undefined behaviour. 0100c63, 03661fb.
The number of dynamic relocations in a
clang
binary was reduced by ~7000 due to reworking of theOption
library. dd647e3.Apple Silicon specific runtime loop unrolling preferences were implemented in the AArch64 backend. 0bb7bd4.
The AMDGPU backend gained a new “max-memory-clause” scheduling strategy. b33c807.
The RISC-V backend now supports stack clash protection and XRay. 708a478, ea76b2d.
SystemZ now supports
__builtin_{setjmp,longjmp}
. dc04d41.Critical edge splitting code was moved to the dominator tree updater. 79047fa.
A pre-commit check was introduced to warn about uses of undef. 19bc282.
Vararg support was implemented in the Xtensa backend. be4a183.
A wrapper for a merged string table was added to LLVM’s ADT library. ef28e96.
Tests in various backends were updated to use
-mtriple
rather than-march
. f1987c7, 7284902, and more.
Clang commits
Clang’s driver now prioritises command line arguments over
DEFAULT_SYSROOT
. 737d78a.-Wdangling-capture
was enabled by default. f229ea2.
Other project commits
LLDB gained a formatter bytecode interpreter implemented in C++. 9a9c1d4.
The initial scaffolding for a binary analysis tool based on BOLT was committed. ceb7214.
LLVM’s libc can now be used baremetal on AArch64. 2e8ce30.
LLD now supports
--randomize-section-padding
, which is intended to be used in A/B experiments to control for effects such as false sharing in the cache. 64da33a.LLVM libc docs now link to LLVM dev meeting talks related to it. e5ab6e9.
LLDB learned to handle LoongArch64 hardware break/watchpoints. 6c4e70f.