LLVM Weekly - #510, October 9th 2023
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
There were multiple really great answers to a question about flow-sensitive alias analysis in LLVM.
Konstantin Varlamov shared a detailed RFC on hardening in libc++.
Minutes from the July, August, September, and October LLVM Foundation board meetings were posted.
Micah Weston initiated an RFC on generating metrics for PGO accuracy.
Jeremy Kun posted an RFC on introducing an MLIR ‘poly’ diaclect for polynomial arithmetic.
Andy Kaylor proposed the creation of a floating-point working group.
Lawrence Benson proposes adding a new Clang builtin to get the number of lanes in SIMD vectors.
Nikita Popov made an RFC on adding a zext nneg flag to LLVM’s IR.
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.