LLVM Weekly - #496, July 3rd 2023

LLVM Weekly - #496, July 3rd 2023

If you prefer, you can read a HTML version of this email at http://llvmweekly.org/issue/496.

Welcome to the four hundred and ninety-sixth 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 papers is open for the ninth annual LLVM in HPC Workshop, with submissions due on August 16th.

My Igalia colleague Job Noorman has written up a great blog post about his work to enable RISC-V support in the BOLT post-link optimiser. It gives the initial technical details (more to follow) and I think gives a good example of how investment from both the contributor and the upstream reviewers can lead to a better solution that benefits everyone - in this case, migrating BOLT to a newer runtime linking framework and avoiding the need for us to support two RISC-V runtime linkers in parallel within LLVM.

Andrew Kelley (Zig programming language creator and lead) recently shared a roadmap for moving away from the Clang, LLVM, and LLD libraries. He later provided clarifications, and the issue was discussed on sites such as HN and lobste.rs.

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

  • Office hours with the following hosts: Tobias Grosser, Anastasia Stulova, Quentin Colombet, Johannes Doerfert.
  • Online sync-ups on the following topics: OpenMP, Clang C/C++ language working group, Flang, RISC-V, MLIR open meeting, HLSL, SPIR-V, MLGO.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • Shrink wrapping no longer conservatively assumes that a load/store accesses the stack. 02ba5b8.

  • It’s now possible to set LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=all to build all available experimental targets. 1908820.

  • The llvm.frexp intrinsic was introduced. 003b58f.

  • BFloat16 support was added to the NVPTX backend. 250f2bb.

  • Support was added for fat LTO objects, which contain both generated object code and LTO compatible IR. 75a1797.

  • The MetaRenamer pass gained an option to change only the instruction namses (keeping basic block and function names intact). 6f9e743.

  • The ParseStatus enum was introduced alongside a three-state parseDirective as a replacement for ParseDirective in target ASM parsers. af20c1c1.

  • A scheduling model was added for the Neoverse N1. 6a5da11.

Clang commits

  • All trailing whitespace was removed in the clang/ subdirectory. f6d557e.

  • WebAssembly shared libraries are now supported on non-Emscripten targets (e.g. wasm32-wasi). 55e199a.

  • C++11 style initialisation of Arm SVE types is now supported. 989879f.

  • The modernize-printf-to-std-print clang-tidy check was added, which can convert printf-style format strings to std::print-style format strings. 83f875d.

Other project commits

  • Initial support was added for building the Flang runtime as a CUDA or OpenMP target offload library. 3212051.

  • The libc++ legacy debug mode was removed (as proposed in a previous RFC). b5270ba.

  • Work started to move to a new surface syntax for Sparse Tensor Encoding Attributes in MLIR. 6b88c85.

1 Like