LLVM Weekly - #529, February 19th 2024

LLVM Weekly - #529, February 19th 2024

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

Welcome to the five hundred and twenty-ninth 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 to asb@asbradbury.org, @llvmweekly or @asbradbury on Twitter, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.

News and articles from around the web and events

The call for presentations for the MLIR Workshop at the EuroLLVM Developer Meeting is now up. The workshop will take place on April 9th.

The next LLVM Bay Area Monthly Meetup will take place on Monday 26th February.

The book Learn LLVM 17, Second Edition by Kai Nacke and Amy Kwan is now available.

According to the LLVM calendar in the coming week there will be:

  • Office hours with the following hosts: Phoebe Wang, Johannes Doerfert.
  • Online sync-ups on the following topics: Flang, pointer authentication, libc++, security group, new contributors, LLVM/Offload, C/C++ language working group, loop optimisations, floating point, OpenMP in Flang, MLIR open meeting, PowerPC, SPIR-V.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • A scheduling model was added for the open source XianShan-NanHu RISC-V processor. 373d9d7.

  • The AMDGPU backend started to gain support for “Generic Targets”, which will in the future provide a way to build once and run on multiple GPUs (though losing out on optimisation opportunities). As noted in the commit message, device libraries, runtime, loader etc support is needed. f93aa51.

  • Scaffolding for codegen support for Xtensa was committed. b5046a7.

  • An @llvm.readsteadycounter intrinsic was added. On targers that support it, this accesses a timer running at a fixed frequency clock. 11fcae6.

  • The TypePromotion pass was enabled for RISC-V. 7d40ea8.

  • An ExpponentialBackoff helper was added to LLVM’s support library. edff3ff.

  • A scheduling model was added for the Ampere1B. dd1897c.

  • Codegen support for the experimental RISC-V Zabha extension was added. a300a1a.

  • A pass was added to optimise post-increment loads and stores in loops for Hexagon. 0e6a48c.

Clang commits

  • clangd gained support for renaming Ojective-C methods. edfc859.

  • Clang now always emits IR for atomics, when previously it emitted IR if it knew the operation was natively supported and libcalls otherwise. This avoids duplicating logic between the backend and frontend. 5fdd094.

  • std::array fixits were added for -Wunsafe-buffer-usage. 644ac2a.

  • A canonicalised RISC-V ISA string will now be added as module metadata for RISC-V. This is a step to working around some issues with LTO builds. f45b9d9.

  • Fixed point precision macros were defined. ad49657.

  • Various overflow and carry builtins were implemented in the clang interpreter. 7f45acf.

Other project commits

  • LLD now has full support for linking SystemZ object files. fe3406e.

  • Initial work on an MPI dialect was added to MLIR. b334664.

  • BOLT now uses a new JournalingStreams struct for logging, allowing logging to be more easily modified by users of BOLT as a library. 52cf071.

  • LLVM’s libc started to gain documentation on C23 support. 58946ee.

  • The stability and versioning policy for MLIR’s bytecode format was documented. 450462c.