LLVM Weekly - #482, March 27th 2023
Welcome to the four hundred and eighty-second 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
The program for the 2023 EuroLLVM Developers' Meeting is now available. Early bird registration ends on April 10th.
A video from the February LLVM Toronto meetup is now up on YouTube, featuring Whitney Tsang presenting on GSoC. Also on the topic of GSoC, be sure to check out Stefan Gränitz’s overview of a selection of suggested LLVM GSoC projects.
Xilinx released nanotube as open source, a compiler that takes EBPF XDP C code as input and (via LLVM IR) outputs a packet processing pipeline in HLS C++.
The March LLVM Bay Area meetup will take place today, March 27th. Later in the week (on March 29th) an LLVM social will take place in Darmstadt.
According to the LLVM calendar (note: Europe followed the US into daylight savings time over the weekend, so meeting times are hopefully back to usual for most people) in the coming week there will be:
- Office hours with the following hosts: Johannes Doerfert.
- Online sync-ups on the following topics: MLIR C/C++ frontend, pointer authentication, OpenMP, Flang, LLVM embedded toolchains, SPIR-V, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Brad Richardson kicked off the official review thread on renaming flang-new to flang, which has attracted a range of responses already. Some respondents are concerned about end user confusion as flang is not yet feature complete, while others feel that if there’s a precedent within LLVM, it’s for using a name for a tool throughout its life, rather than waiting for a certain milestone to rename it.
Tarun Prabhu started a discussion about adding gfortran tests to llvm-test-suite and Sam Elliott provided some advice and perspectives based on adding the GCC C torture suite.
Tanya Lattner reports that the last two LLVM Foundation strategic planning meetings have been cancelled, though invites anyone with feedback to use the linked form or setup a meeting with her directly.
Slides and a recording from the recent open MLIR meeting on Nellli, a Python embedded domain-specific language for emitting MLIR, are now available.
Siva Chandra posted an RFC on running libc unit tests as integration tests.
Yueh Ting Chen proposed permitting load/store/alloca for structs of the same scalable vector type, noting that the proposal is motivated by feedback from end users about usability. The RFC suggets adding the concept of RVV vector tuple types to address the issue.
Alex Bradbury notes an ongoing discussion about changing the shadow call stack register on RISC-V and queries if anyone is actively relying on the current register choice.
Pierre van Houtryve proposes deprecating DivergeAnalysis and LegacyDivergenceAnalysis now that UniformityAnalysis has been introduced. Respondents so far are in favour.
LLVM commits
An AArch32 backend was added for JITLink. 5c1d160.
MC layer support was added for the experimental RISC-V vector crypto extension. 9795aa0.
llvm::range_size
was introduced for generic ranges. 2981832.The RISC-V backend now uses
LBU
forextloadi8
(i.e. anyext), as the Zcb extension has a compressed form ofLBU
. 8e43c22.As part of the memory profiler work, a context disambiguation cloning pass was added. 700cd99.
The vectorizer now defaults to LMUL=2 for RISC-V. This was found to have minimal impact on spills but should increase throughput and allow more interleaving. 8d16c68.
MC layer support was added for RV64E. c39dd7c.
A new InstCombine was added targeted at the IR generated by
std::bit_ceil
. 231fa27.I’d missed this previously, but a series of patches to move AMDGPU to using UniformityAnalysis instead of DivergenceAnalysis has now completed. 1f1fea6.
Support for the memorably named E4M3B11FNUZ floating point format was added to APFloat. 2f086f2.
Clang commits
The Clang driver for the OpenHarmony OS target was committed. 28997fe.
The status for coroutine support was updated to note C++20 coroutines are fully supported on all targets except Windows. 8894fe7.
Documentation was added on Windows SDK search. 893ce57.
#pragma clang __debug dump
now supports expressions rather than just an identifier. 467ed27.The readability-avoid-unconditional-preprocessor-if clang-tidy check was introduced. 52296f5.