LLVM Weekly - #492, June 5th 2023
Welcome to the four hundred and ninety-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, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
News and articles from around the web and events
The next LLVM Bay Area Monthly Meetup will be held today (Mon June 5th).
LLVM 16.0.5 was released.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Paulo Matos, Tobias Grosser, Anastasia Stulova, Johannes Doerfert, Quentim Colombet.
- Online sync-ups on the following topics: MemorySSA, OpenMP, Clang C/C++ language working group, RISC-V, MLIR, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
In an RFC, Michael Jones shared proposed text for a documentation page about undefined behaviour in LLVM’s libc.
LLVM Foundation Board meeting minutes for March and April 2023 were posted.
Nikolas Klauser provided an answer to a question about libcxx’s ABI guarantees.
Ivan Butygin kicked off a discussion about finalising SVML support in LLVM.
Tanya Lattner is seeking volunteers for the 2023 LLVM Dev Meeting program committee and travel grant review committee.
Konstantin Varlamov proposed removing the legacy debug mode from LLVM’s libc++, noting issues with its design mean it’s never really been used by vendors as hoped. Respondents are so far positive about the removal.
CMake 3.20.0 is now the minimum required CMake version for building LLVM.
LLVM commits
A scheduling model was committed for the Intel Sapphire Rapids microarchitecture. 8db674a.
InstructionSimplify APIs now requires instructions to be inserted into a parent function. 1536e29.
Thread local storage support was added to the M68k backend. 4c2ec08.
A skeleton implementation of DWARFLinkerParallel was committed. 36f3510.
GlobalISel’s lowerFormalArguments and lowerCall were implemented in the RISC-V backend. af8e386, 9c6bee6.
llvm::Optional
was removed as the migration tostd::optional
has completed. 397f2e9.!getdagarg
and!getdagname
were introduced to the TableGen language. 26d7b7b.Support for the
lga
pseudoinstruction was added to the RISC-V backend MC layer. 9b55e5d.The ComplexDeinterLeavingPass was extended to better handle
-Ofast
code. 1a1e761.llvm/include/llvm/Demangle/StringView.h
was removed as libcxxabi and Demangle have been migrated tostd::string_view
. 217709c.
Clang commits
An extension hook was added for defining keyword attributes, which might be used for platform-specific language extensions as an alternative to GNU-style attributes. The commit message goes into much more detail, but one advantage is that compilers that don’t support these keywords will reject the input with an error rather than warning (as they would for an unrecognised GNU-style attribute). 301eb6b, 33ee5c4.
The misc-include-cleaner check was implemented in clang-tidy, checking for unused and missing includes. c28506b.
The AArch64 SME load/store intrinsics were added. 9f6250f.
Clang’s diagnostics for when it fails to deduce the auto return type of a function were improved. 0442d08.