LLVM Weekly - #583, March 3rd 2025

LLVM Weekly - #583, March 3rd 2025

If you prefer, you can read the canonical version of this issue at https://llvmweekly.org/issue/583.

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

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 #ifdefs), but by modifying LLVM_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 or weak_odr functions as they may introduce an infinite call cycle. f10e0f7.

  • The LangRef definition of llvm.minnum and llvm.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.

Other project commits

  • BOLT gained support for two new profile quality statistics. 7e33beb.

  • The clang-opt-bisect analyzer tool was removed from Dexter. 1ed359e.

  • Initial UEFI headers were added to LLVM’s libc. 9b6d0d7.

  • NaN propagation lowering was implemented in MLIR’s tosa-to-linalg. cf3b036.