LLVM Weekly - #582, February 24th 2025
Welcome to the five hundred and eighty-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 https://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
Registration is now open for EuroLLVM, with early bird registration ending on March 12th.
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: pointer authentication, OpenMP, Flang, RISC-V, LLVM embedded toolchains.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Britton Watson introduced themselves as the new assistant program director at the LLVM Foundation. Welcome!
The Flang Liaison reports to the US Fortran Programming Language Standards Technical Committee (‘J3’) always serve as a great summary of recent progress, and the latest is no exception. Thank you Mark LeAir and any other contributors to the write-up.
Lucile Rose Nihlen provided a detailed update on the LLVM premerge infrastructure. “The plan for the Beta test is to keep the current infrastructure in production while enabling PRs to also be tested on the new infrastructure. During beta testing, PRs will have a new Github Actions check labelled LLVM Premerge. Initially we will have these set to pass regardless of whether or not the build/test passes or fails, purely to test the infrastructure.”
“student433” proposed supporting ‘pseudo’ targets in the Clang frontend, i.e. targets that has no backend support but where the target should be recognised by the frontend.
Graham Hunter posted an RFC thread on supporting more early-exit loops in the vectoriser.
LLVM commits
LLVM’s developer policy was updated with new commit access requirements, with an explicit requirement that 3 committed patches are needed. ca0406d.
Codegen support for Armv9.6-A’s compare-and-branch instructions was added to the AArch64 backend. 0fe0968c.
The loop vectorizer gained initial support for vectorising literal struct return values. e0e67a6.
Mips now supports the
llvm.readcyclecounter
intrinsic. af1e2a3.The
__extendhfsf2
and__truncsfhf2
spellings ofhalf<->float
conversions are now used by default, with targets using different names (e.g. Arm) needing to override it. cc53913.A new RISC-V pass removes excess ADDI that can be reassociated and folded into a load/store address. 26e3750.
The superword level parallelism (SLP) graph is now represented as a tree. 894935c.
Assembler/disassembler support for the XRivosVizip RISC-V vendor extension was implemented. aef63c5.
Clang commits
ClangIR generation for simple function bodies was upstreamed. f8bdbed.
Clang learned to lower
sincos[f|l]
calls tollvm.sincos.*
when-fno-math-errno
is set. 7781e10.An option was added to exclude the LLVM build from PGO training (with some disadvantages of using the it noted in the commit message). dca7306.
Code generation was implemented for HLSL
cbuffer
(constant buffer) declaration blocks. 19af858.You can now specify a separate configuration for C vs C++ in clang-format and specify the language of a header file (C, C++, or Objective-C) via a comment. 0968df9.
Other project commits
The fledgling
llvm-bolt-binary-analysis-tool
gained its first analysis in the form of an initial pac-ret gadget scanner. 850b4929.Flang’s runtime library can now be built with
LLVM_ENABLE_RUNTIMES=flang-rt
. b55f751.The size of the
llvm-bolt
binary was substantially reduced by only linking to supported targets. e235fcb.The list of supported compilers for libcxx was updated to reflect that Clang 17 is no longer supported after Clang the LLVM 20 branch. b22fc43.
LLD headers and libraries can now be installed via the new
lld-headers
andlld-libraries
components inLLVM_DISTRIBUTION_COMPONENTS
. 6273877.MLIR MPI dialect to LLVM lowering was implemented. ab166d4.