LLVM Weekly - #533, March 18th 2024
Welcome to the five hundred and thirty-third 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
Anton Korobeynikov wrote on the LLVM blog about LLVM in Google Summer of Code 2023 and 2024.
The Unreal Engine blog covers their addition of transactional memory semantics to C++, using a Clang/LLVM based toolchain.
A new LLVM meetup is starting in the Seattle-Belevue area, with the first scheduled for 26th March.
Include What You Use 0.22 was released.
According to the LLVM calendar in the coming week there will be the following (note: US is still ahead of most countries in entering daylight savings time so meeting times may be different to usual):
- Office hours with the following hosts: Phoebe Wang, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, pointer authentication, SYCL, SPIR-V, libc++, security group, new contributors, LLVM/offload, C/C++ language working group, loop optimisations, classic flang, floating point, OpenMP in Flang, MLIR, PowerPC.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tom Stellard is seeking input from users of personal access tokens for LLVM GitHub interactions.
Mehdi Amini posted a new RFC for adding a warning when bypassing premerge testing.
Michael Jones proposed “project hand in hand”, aiming to increase code sharing between LLVM’s libc and libcxx subprojects.
Justin Stitt kicked off an RFC discussion on adding a ‘wraps’ attribute to Clang for granular integer overflow handling, noting limitations with the current
__attribute__((no_sanitizer("signed-integer-overflow")))
approach.Fangrui Song posted an RFC on RELLEB, a compact relocation format for ELF and supporting compressed
SHT_SYMTAB
/SHT_STRTAB
for ELF.Vitaly Buka proposed adding an
llvm.experimental.hot()
intrinsic.Krzysztof Drewniak shared an RFC on adding new microscaling float scalars to APFloat and FloatType. There was another discussion about custom float types in MLIR this week too.
Wentao Zhang outlined some issues with TableGen HWMode and made a proposal to address them.
Amrit Bhogal suggested making
__builtin_dump_struct
expandtypeof
declarations.Mishal Shah notes that the “Green Dragon” Jenkins infrastructure is migrating to a new cloud services provider.
Michael Buch shared a proposal for handling
[[no_unique_address]]
in LLDB.
LLVM commits
The necessary LLVM-side support was added for the BPF ‘arena’ feature, allowing access to a memory region shared by both the BPF program and user space. 2aacb56.
llvm-debuginfo-analyzer now supports WebAssembly’s binary format. b19cfb9.
The new
LLVM_PARALLEL_TABLEGEN_JOBS
CMake option allows the number of tablegen jobs that can run in parallel to be restricted. 9228859.InstSimplify was updated to make use of range attributes to simplify comparisons. a3b5250.
The llvm.coro.await.suspend intrinsic was implemented. f786881.
llvm::{min,max}_element
was added to LLVM’s STLExtras.h. fab2bb8.The option for running lit testsuites in parallel was reverted. 8846b91.
IRBuilder learned to fold some binary intrinsics. 1411452.
MacroFusion gained support for commutable instructions. b890a48.
LLVM_ENABLE_FATLTO
can now be used to build LLVM with-ffat-lto-objects
. 43fc921.
Clang commits
A basic set of AArch64 pointer authentication Clang builtins and intrinsics are now supported (and detailed documentation on ptrauth added!). 0481f04.
The rsqrt, isinf, and clamp intrinsics were implemented for HLSL. 8f9ee39, d192b643, 8386a38.
The
-Wreturn-mismatch
warning was added. 8467457.__builtin_arm_trap
was defined for AArch64, allowing a compile-time constant payload. 4299c72.-m[no-]unaligned-access
was removed for RISC-V and LoongArch,-m[no-]strict-align
should be used instead. cd07125.Work on InstallAPI with the ability added to collect C++ declarations. 2c93bec.
Other project commits
A new generic
Alarm
class was added to LLDB to aid coalescing progress reports. f01a32f.MLIR’s LLVM dialect gained support for recursive DITypes. 1e8dad3.
Fortran::common::optional
andFortran::common::reference_wrapper
implementation was added to the Flang runtime. 71e0261, d8f97c0.LLVM’s libc documentation for GPU testing was updated. 6818c7b.
LLD gained the
--compress-sections
option to compressed matching non-SHF_ALLOC sections. f1ca2a0.