LLVM Weekly - #592, May 5th 2025

LLVM Weekly - #592, May 5th 2025

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

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

The next Cambridge (UK) Compiler Social will take place on June 5th.

The next LLVM Meetup in Darmstadt will take place on May 28th.

Arm’s developer blog covers Arm’s contributions to LLVM 20.

According to the LLVM Calendar in the coming week there will be the following:

  • Office hours with the following hosts: Johannes Doerfert, Quentin Colombet, Aaron Ballman.
  • Online sync-ups on the following topics: MLIR C/C++ frontend, ClangIR upstreaming, pointer authentication, OpenMP, Clang C/C++ language working group, Flang, OpenMP for flang, memory safety working group.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • Values of opaque types are no longer allowed in IR. 6feb4a8.

  • The update_foo_checks scripts were updated to continue on error when processing multiple inputs. 88b03aa.

  • MC layer support was added for the RISC-V XAndesperf vendor extension. 6ba1a62.

  • atomicrmw fmaxmimum/fminimum is now supported. 6e49f73.

  • A scheduling model was added for the MIPS i6400 and i6500 CPUs. c22bc21.

  • TableGen’s subtarget emitter now prints a warning when a Processor contains duplicate Features. 951292b.

  • Various RISC-V instruction predicates were converted to using the TIIPredicate mechanism. 8f75747.

Clang commits

  • A new -header-include-filtering=direct-per-file option was added. 2f1ef1d.

  • -Wimplicit-int-enum-cast was added which warns about implicit casts from int to an enumeration type in C, which is valid C but not compatible with C++. -Wjump-bypasses-init was also added. df267d7, 543f112.

  • ClangIR upstreaming continues with initial switch statement support, union types, and more. 9d1f1c4, 708053c.

  • clang-format’s new OneLineFormatOffRegex option can be used to give a regex used to match a marker that disables clang-format for one line. 8effc8d.

  • -Wunterminated-string-initialization warns upon an initialization from a string literal where the null terminator cannot be stored. Taking an example from the commit message: char buf[3] = "foo";. e8ae779.

  • -ftime-report-json was added which outputs timing data formatted as JSON. 4a6c81d.

Other project commits

  • Flang’s build system started to use precompiled headers, which appear to result in meaningful compile time and memory usage improvements. d68c732.

  • Volatile references can now be lowered in Flang. 8836bce.

  • A benchmarking script was added for LLD. 6b25cfb.