LLVM Weekly - #531, March 4th 2024
Welcome to the five hundred and thirty-first 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, @llvmweekly or @asbradbury on Twitter, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
News and articles from around the web and events
The program for EuroLLVM 2024 was announced.
Shafik Yaghmour wrote on Intel’s blog about the motivation for an Undefined Behavior Annex in the C++ language standard.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Anastasia Stulova, Quentin Colombet, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, pointer authentication, AArch64, new contributors, LLVM/offload, classic flang, C/C++ language working group, loop optimisations, OpenMP in Flang, MLIR, PowerPC, HLSL, SPIR-V, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
David Spickett shared an RFC on adding register field enums to LLDB. This would allow providing human-readable descriptions of integer values in registers (e.g. floating point rounding mode in the relevant floating point control register).
Stephen Tozer provided an update on work to represent non-instruction debuginfo in textual IR, noting that a newly discovered issue is that the new approach may result in parser errors in cases that had previously been verifier errors.
Pierre van Houtryve proposes the addition of target-specific module splitting, motivated by needs of AMDGPU.
LLVM 18.1.0-rc4 was released with the final release expected this week.
Steve Scalpone noted that a new report on progress in Flang was submitted to the Fortran standards committee.
There’s lots of activity on the various GSoC 2024 project ideas, see the gsoc2024 tag on Discourse.
John Regehr and Zhengyang Liu shared a list of missed floating point folds found by a new LLVM IR superoptimiser.
Haopeng Liu started an RFC discussion on adding a new
initialized
parameter attribute and using it to improve interprocedural dead store elimination.
LLVM commits
The RISC-VRVVInitIndef pass was made target-independent and support added for the Arm architecture. 2823340.
The SPIR-V backend gained support for the
SPV_INTEL_variable_length_array
extension. ada70f5.A bottom-up post-regalloc machine instruction scheduler was added. 9106b58.
A RefTypeMem2Local pass was added to the WebAssembly backend. d4cdb51.
An option was added to run mulitple lit suites in parallel. 782147e.
Guidance on bans was added to the code of conduct documentation. 4d12f70.
A new backend-only
-enable-loop-header-duplication
flag was added to force-anble loop rotation. 2fef685.The HexagonLoopAlign pass was added to the Hexagon backend. ca9d2e9.
Clang commits
Clang learned to produce single-byte counters for source-based code coverage. 23f895f6.
More Clang API Notes functionality was upstreamed from Apple’s fork, adding logic to apply API note to declarations. 440b174.
__builtin_popcountg
(a type-generic alternative to the__builtin_popcount{,l,ll}
builtins) was implemented. 21d8332.The dot, lerp, frac, and round intrinsics were implemented for HLSL. 82acec1, e60ebbd, 489eadd1, b542501.
A new
modernize-use-designed-initializers
check was added to clang-tidy. 525fe44.
Other project commits
BOLT gained support for the DWARFv5 .debug_names acceleration table. 6de5fcc.
LLVM’s libc printf implementation gained support for fixed point conversion specifiers. 8e3b6054.
Documentation was added to LLD on large sections. 4bc3b35.
An example was added to the MLIR tree of using the transform dialect standalone. 619ee20.