LLVM Weekly - #528, February 12th 2024
Welcome to the five hundred and twenty-eighth 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
“xoranth” blogged about switch lowering in GCC.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Kristof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: alias analysis, poitner authentication, new contributors, OpenMP, Flang, BOLT, RISC-V, libc, MLIR, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Jeremy Morse provided an update on work to eliminate debug intrinsics, noting that this is about to turned on and how this may affect downstream pass implementations.
Tom Stellard started an RFC thread on the future of Windows pre-commit CI, suggesting migrating it to GitHub Actions unless the current spurious failures can be resolved.
LLVM 18.1.0-rc2 was released.
Jon Chesterfield provided an update on his proposal for desugaring variadics.
“dougsonos” posted an RFC on adding nolock and noalloc attributes to Clang.
Nora Judith started a thread querying if there was any progress on a physical manifestation of the LLVM mascot.
Takumi Nakamura proposed introducing a new algorithm and file format for modified condition/decision coverage. The proposal aims to remove the current limitation on the maximum number of conditions.
Potential GSoC projects for on-demand parsing in Clang and 3-way comparison intrinsics were shared.
LLVM commits
A new JumpTableToSwitch pass was introduced, replacing an indirect call with a switch and direct calls if all functions in the jump table are smaller than the specified threshold. d26b43f.
A
preserve_none
calling convention was introduced and is supported on X86-64 only for now. c166a43.LLVM’s documentation was improved to be clearer about when the new vs the legacy pass manager is used. 1b5fae9.
Many in-tree tests were converted to opaque pointers. 1ee315a, 00a4e24, 6e83c0a, and more.
MC layer support was added for the RISC-V pointer masking extension. 0bf165e.
The newly added ‘skip-precommit-approval’ label for use with PRs that are not meant to be reviewed (e.g. reverts) was documented. 9347146.
The unmaintained LoopReroll pass was removed. ac3bd2b.
Arbitrary general purpose registers can now be reserved for Sparc. c2f9885.
Clang commits
C intrinsics were added for the RISC-V Zvfbfwma extension. ae5ed2a.
The clang linker wrapper now supports relocatable linking for offloading. 5c84054.
-Wshorten-64-to-32
is now grouped under-Wimplicit-int-conversion
. 4b72c5e.
Other project commits
MLIR’s transform dialect tutorials were updated. b33b91a.
The float128 rounding functions were added to LLVM’s libc. 6ba9d29.
LLD can now relax the
R_LARCH_ALIGN
relocation for LoongArch. 06a728f.Initial mapping of Fortran pointers and allocatable variables for target devices was implemented in MLIR. 95fe47c.
SiFive VCIX intrinsics are now supported in MLIR’s LLVMIR dialect. 9f6c005.