LLVM Weekly - #577, January 20th 2025

LLVM Weekly - #577, January 20th 2025

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

Welcome to the five hundred and seventy-seventh 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 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

LLVM 19.1.7 was released.

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: Flang, vectoriser improvements, libc++, security response group, LLVM/Offload, classic Flang, OpenMP for Flang.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • The captures(...) attribute was introduced to LLVM IR, and can be used to indicate the ways in which the callee may capture the pointer. 22e9024.

  • GlobalOpt gained the ability to statically resolve calls to versioned functions in some circumstances. 831527a.

  • The SPIR-V backend gained a pre-legalisation instruction combining pass. eddeb36.

  • Assembler/disassembler support was added to the RISC-V backend for the Qualcomm Xqciint (interrupts) extension. 171d3ed.

  • LLVM can now detect if the host is an Apple M4. a082cc1.

  • Stack clash protection for dynamic alloca was implemented for RISC-V. 01d7f43.

  • Function record iteration for coverage was sped up significantly. e899930.

  • The -print-loop-func-scope option can be used with -print-after-all to ensure loop passes always print the full function IR. 5b6a26c.

Clang commits

  • The new [[clang:explicit]] attribute can be used to ensure that fields are initialised explicitly. 1594413.

  • Clang gained a release note explaining how it will now more aggressively use undefined behaviour on pointer addition overflow. c2979c5.

  • clang-format of Verilog input was dramatically sped up. fbef1f8.

  • Module-level lookup was implemented for C++20 modules. c5e4afe.

  • Clang’s multilib logic gained support for the selection of library variants which don’t correspond to existing command-line options. 226a9d7.

  • The HeuristicResolver from clangd was upstreamed to Clang. As noted in the relevant RFC, the hope is to use this to improve things such as SemaCodeComplete. ae932be.

Other project commits

  • MLIR’s python bindings now support free-threading (no-GIL) mode. f136c80.

  • flang gained support for -ftime-report. 310c281.

  • LLVM’s libc documentation was reorganised to be more beginner friendly. 692c77f.

  • MLIR’s FloatType was turned into a type interface. c24ce32, f023da1.