LLVM Weekly - #577, January 20th 2025
If you prefer, you can read the canonical version of this issue at http://llvmweekly.org/issue/577.
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.