LLVM Weekly - #583, March 3rd 2025
Welcome to the five hundred and eighty-third 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
The CFP for the MLIR workshop at the EuroLLVM developer meeting is open, with a deadline of 9th March for submissions.
Alex Bradbury wrote a short post on configuring ccache for use with multiple Clang/LLVM builds in different directories.
Shafik Yaghmour blogged about what you need to know when optimisations change the behaviour of your C++.
I’ll preface the normal rundown of LLVM events / office hours with a PSA that the USA enters daylight savings time this coming Sunday 9th March, while UK/Europe and potentially other areas don’t follow suit until March 30th. According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Quentin Colombet, Johannes Doerfert, Renato Golin.
- Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, C++ modules, LLVM area team, LLVM/Offload, classic flang, Clang C/C++ language working group, SPIR-V, infrastructure area team, LLVM memory safety working group, HLSL, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Javed Absar shared an MLIR PSA on deprecating linalg named elementwise ops.
Owen Rodley proposed keeping GlobalValue GUIDs stable.
LLVM 20.1.0-rc3 was released
Sam Elliott started a thread to try to clarify the policy on updates to code imported into the llvm-test-suite repo.
Cristian Assaiante shared some performance regressions in SPEC 2017 benchmarks observed on x86_64.
The February 2025 LLVM Foundation board meeting minutes have been posted.
Joseph Huber posted an RFC thread on handling math libcalls with LTO.
MLIR News #74 is now available
Luca Haaks is a PhD student in management science at LMU Munich and is looking for LLVM contributors to interview as part of research into coordination dynamics in open source software communities.
LLVM commits
Initial RISC-V vector support was added to llvm-exegesis. c253e5c.
Telemetry is no longer disabled by disabling building of the library (which led to awkwardness like
#ifdef
s), but by modifyingLLVM_ENABLE_TELEMETRY
. If this is set to false, telemetry cannot be enabled and no data can be collected. 159b872.The LangRef now clarifies that the pointer after an object must be valid. 47822c8.
LLVM’s coding standards document coverage on anonymous namespaces was reworked to cover visibility more broadly. 5bddadf.
Assembler support was added for the Qualcomm RISC-V Xqcilia (large immediate arithmetic) and Xqccmp (16-bit push/pop and double moves) vendor extensions. Also for the Rivos XRivoxVisni (vector integer small new instructions) vendor extension. 538b898, 8039f8e, 5066d7b.
DISubrangeType
was added, motivated by Ada. e298fc2.MergeFuncs no longer introduces calls to
linkonce_odr
orweak_odr
functions as they may introduce an infinite call cycle. f10e0f7.The LangRef definition of
llvm.minnum
andllvm.maxnum
was clarified. 363b059.-print-inst-addrs
and-print-inst-debug-locs
and be used to print addresses and debug locations of instructions when dumping. 0ebf7b4.
Clang commits
__attribute__((format_matches))
is now implemented, allowing the compiler to check that a format string matches its arguments. c710118.A minimal
cir-opt
tool was added in order to allow tests to be written for CIR dialect parsing. 607a1f2.alpha.webkit.UnretainedLocalVarsChecker
was added. cec3507.creduce-clang-crash.py was renamed to reduce-clang-crash.py and now supports cvise alongside creduce. 59cee03.
[[clang:atomic]]
attributes are now supported for controlling atomic code generation. 240f226.