LLVM Weekly - #510, October 9th 2023

LLVM Weekly - #510, October 9th 2023

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

Welcome to the five hundred and tenth 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 2023 LLVM Developers’ Meeting is of course going on this week and has a packed agenda. I unfortunately can’t make it, but if you’re there do be sure to attend the talk on vector codegen in the RISC-V backend by my Igalia colleague Luke Lau.

Nikita Popov blogged about scalar evolution in LLVM.

Galois open-sourced Yapall, (Yet Another Pointer Analysis for LLVM), a static pointer analysis tool for programming languages that compile to LLVM.

LLVM 17.0.2 was released.

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

  • Office hours with the following hosts: Aaron Ballman, Alexey Bader, BOLT maintainers, Johannes Doerfert.
  • Online sync-ups on the following topics: OpenMP, Flang, SPIR-V.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • NaN behaviour was specified more precisely in the LLVM language reference. d688816.

  • LLVM’s Support and ADT libraries were expanded with ThreadSafeAllocator and LazyAtomicPointer. d07c3cf, 5d2a710.

  • MachineSink’s recently added sink-and-fold support is now used by RISC-V as well as AArch64. 45636ec.

  • Documentation was added to warn contributors to check for truncated PR titles on GitHub. 3dda1040.

  • The RISC-V Zfa extension was updated to version 1.0 and is no longer marked as experimental. 18c3c46, eae1e28.

  • codegen::createTargetMachineForTriple was introduced, reducing duplication between tools implementing this logic independently. a8f8613.

  • SimplififyDemandedUseFPClass was added. 59c6e2e.

  • Support was added for for DirectX program signatures. 9f87522.

  • InstCombine now attempts to canonicalise add+gep to gep+gep. e13bed4.

Clang commits

  • The C++23 ‘deducing this’ feature is now implemented in Clang. af47517.

  • -f[no]-verify-intermediate-code command line flags were added to control verification of the generated LLVM IR. 6da382d.

  • Limited support for type inference with the auto keyword in C was added. 13ffc61.

  • Driver, preprocessor, and sema support was added for ‘hipstdpar’ for HIP parallel algorithm offload on AMDGPU targets. 9a40858.

  • The counted_by attribute is now supported in C, and can be used with a struct’s flexible array member to indicate the struct field that holds the number of elements in that member (and this information may then be used by e.g. the array bound sanitizer). 9a954c6.

  • Initial support was introduced for the OpenMP kernel language. d6254e1.

Other project commits

  • A tblgen-to-irdl tool was introduced to MLIR. e6e9beb.

  • libc++ ranges::count was optimised for __bit_iterators. a9138cd.

  • The LLD COFF linker now supports --time-trace for generating profile traces in .json. 356139b.