LLVM Weekly - #474, January 30th 2023
Welcome to the four hundred and seventy-fourth 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, or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web and events
LLVM 16.x has branched and 16.0.0-rc1 was tagged.
If you’re seeking a new LLVM-related role, see the recent who’s hiring thread.
The EuroLLVM call for proposals is out. The submission deadline is March 3rd.
Adrian Ratiu blogged about Collabora’s work to support building glibc with LLVM.
MaskRay blogged about UndefinedBehaviorSanitizer.
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: MLIR C/C++ frontend, OpenMP, Clang C/C++ language working group, Flang, RISC-V, embedded toolchains working group, HLSL, SPIR-V, MLGO, GPU.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Galina Kistanova posted an RFC on introducing ‘gate keeper’ builders to the LLVM build infrastructure.
Renato Golin proposed a pass manager builder for MLIR.
Christopher Bazley shared a detailed RFC on adding pointer nullability information to C programs.
Krzysztof Drewniak posted an RFC on adding the AMD/GraphCore float8 formats to APFloat.
Sergei Barannikov asked for and received advice on how to keep an out-of-tree target in sync with upstream.
Kristof Beyls is trying to organise a lunch before the LLVM dev room at FOSDEM.
Matthias Springer started a discussion on fuzzing pattern application in MLIR.
Takumi Nakamura highlighted that waiting for llvm-tblgen can starve very highly parallelised LLVM builds and started a discussion about options for improving this situation.
Guillaume Chatelet initiated an RFC discussion on llvm-libc tuning.
Matt Arsenault sent out a notice to out of tree targets that
TargetLowering::hasBitPreservingFPLogic
was removed.Renato Golin proposed splitting built-ins from the rest of compiler-rt.
LLVM commits
A Jupyter kernel for llvm-tblgen was committed, alongside a notebook describing how to write a Python backend. 210a383, 232a27b.
Best practices for regression tests was documented in the LLVM testing guide. 1d6d1ec.
The LLVM language reference now explicitly states that i8 is naturally aligned. 4dbf3f2.
llvm-opt-report gained documentation. 4c443eb.
Definitions were added for the AArch64 Ampere1A core. fb0af89.
atomicrmw {uinc_wrap,udec_wrap}
were introduced. 778cf543, 93ec3fa.A tuning flag was added to the X86 backend that enables 256-bit wide AVX load/stores even when
-mprefer-vector-width=128
is set. This might be used when targeting cores where AVX instructions might cause a frequency drop. d7043e8.Support was added for custom decoders for variable length instructions, and this was used for 32-bit immediates on M68k. 36c19ea, c40b158.
Codegen for 128-bit atomics with the rcpc3 feature on AArch64 was implemented. 7c84f94.
MC layer support for the experimental RISC-V Zcb extension was implemented. 42c36da.
The “InteractiveModelRunner” was introduced, meant for ML researchers using environments like CompilerGym. 5b8dc7c.
Clang commits
The RISC-V vector intrinsics were updated (see the commit message for an overview). 62449823, 224d29e, d94a315, and many more.
The Clang interpreter gained initial support for builtin functions and support for floating-point values (and a range of other improvements this week). a7a4463, 62f43c3.