LLVM Weekly - #513, October 30th 2023
Welcome to the five hundred and thirteenth 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 LLVM Bay Area Monthly Meetup is taking place today (Monday).
The call for papers is open for the eighth LLVM Performance Workshop at CGO 2024.
The next LLVM Social Bangalore (online) meetup will take place on 4th November with a talk on context sensitivity.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Quentin Colombet, Johannes Doerfert
- Online sync-ups on the following topics: Flang, pointer authentication, SYCL, libc++, OpenMP, classic flang, Clang C/C++ language working group, loop optimisation, OpenMP in Flang, MLIR open meeting, HLSL, PowerPC, SPIR-V, and MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Erich Keane posted an RFC on the upstreaming of an implementation of OpenACC for offload in Clang, noting an intent to work on the ClangIR effort to allow Flang’s OpenACC support via an OpenACC MLIR dialect to be reused.
A new RFC on SYCL has been posted, this time from Sergey Semenov on upstreaming the runtime.
Tobias Hieta started a discussion about how to handle a necessary ABI break in libcxx in 17.x due to a bug in std::expected.
Alex Zinenko proposes removing arith and math ops on tensors in MLIR.
The slides and recording from the recent Open MLIR meeting on a polynomial dialect proposal are now available.
Antoine Moynault posted a graph showing code size and runtime performance on AArch64 for SPEC benchmarks across different optimisation levels.
Christian Ulmann shared an MLIR PSA on the plan for removal of typed pointers from the LLVM dialect.
Paul T Robinson started a discussion on renaming ErrorOr and Expected.
Luke Geeson proposed adding an
-mstrict-rlx-atomics
flag to strengthen the relaxed atomics implementation. This would put a dummy branch after load instructions, on the basis that it allows better reasoning about concurrent code (see the associated blog post for more).
LLVM commits
AArch64’s GlobalISel gained support for selecting pre- and post-indexed loads and stores. 1b11729, 9365994.
It’s now specified that the ptrmask intrinsic mask match the pointer index size. eb86de6.
dsymutil learned to work with mergeable libraries. 88d00a6.
TableGen now has a README. b81bfea.
Basic block reordering was substantially sped up for large functions. cc2fbc6.
The floating point calling convention was implemented in RISC-V GlobalISel. d32e801.
MC layer support was added for AArch64 FP8 and FAMINMAX instructions. 78941e1, b23426e.
New ‘opt’ tool behaviour was introduced to infer the DataLayout from the triple if the DataLayout isn’t specified. e39f6c1.
Clang commits
Documentation was added on execution results handling in clang-repl. 1f02743.
The
clang::preferred_type
attribute can be used on bitfields to indicate the type that will be emitted in debug info. 70982ef.