LLVM Weekly - #577, January 20th 2025
Welcome to the five hundred and seventy-seventh 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
LLVM 19.1.7 was released.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Kristof Beyls, Amara Emerson, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, vectoriser improvements, libc++, security response group, LLVM/Offload, classic Flang, OpenMP for Flang.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Renato Golin, on behalf of a range of MLIR contributors, shared a proposed new governance model for MLIR.
Maxim Kuvyrkov kicked off an RFC thread on the possibility of an LLVM long-term support release.
Tom Stellard suggested requiring contributors have at least 3 commits and acks from 2 current committers in order to be granted commit access.
Jacques Pienaar started a second RFC thread on incubating the MLIR tensor compute primitives (TCP) dialect.
DonĂ¡t Nagy started a discussion on getting rid of unnecessary name handling boilerplate in Clang checker implementations.
Franklin Zhang proposed upstreaming enhancements to BOLT for Linux kernel AArch64, reporting improvements of 8% on an nginx benchmark.
LLVM commits
The
captures(...)
attribute was introduced to LLVM IR, and can be used to indicate the ways in which the callee may capture the pointer. 22e9024.GlobalOpt gained the ability to statically resolve calls to versioned functions in some circumstances. 831527a.
The SPIR-V backend gained a pre-legalisation instruction combining pass. eddeb36.
Assembler/disassembler support was added to the RISC-V backend for the Qualcomm Xqciint (interrupts) extension. 171d3ed.
LLVM can now detect if the host is an Apple M4. a082cc1.
Stack clash protection for dynamic alloca was implemented for RISC-V. 01d7f43.
Function record iteration for coverage was sped up significantly. e899930.
The
-print-loop-func-scope
option can be used with-print-after-all
to ensure loop passes always print the full function IR. 5b6a26c.
Clang commits
The new
[[clang:explicit]]
attribute can be used to ensure that fields are initialised explicitly. 1594413.Clang gained a release note explaining how it will now more aggressively use undefined behaviour on pointer addition overflow. c2979c5.
clang-format of Verilog input was dramatically sped up. fbef1f8.
Module-level lookup was implemented for C++20 modules. c5e4afe.
Clang’s multilib logic gained support for the selection of library variants which don’t correspond to existing command-line options. 226a9d7.
The HeuristicResolver from clangd was upstreamed to Clang. As noted in the relevant RFC, the hope is to use this to improve things such as SemaCodeComplete. ae932be.