LLVM Weekly - #486, April 24th 2023
Welcome to the four hundred and eighty-sixth 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
LLVM 16.0.2 was released.
Registration for EuroLLVM 2023 closes on May 1st.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Johannes Doerfert.
- Online sync-ups on the following topics: pointer authentication, OpenMP, Flang, RISC-V LLVM, MLIR, LLVM embedded toolchains, SPIR-V, MLIR C/C++ frontend.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Jakub Kuderski posted an MLIR RFC on packing for sub-byte types (e.g. i4, i3, i2 packed into byte-aligned values). Much of the discussion so far has focused on the comparison of this approach vs vectors of i8.
M Zeeshan Siddiqui posted an RFC on supporting extended floating point formats from the C++23 standard.
Christopher Di Bella started a discussion about documenting the currently undocumented attributes in Clang.
In response to a query, Siva Chandra summarised the current status of LLVM’s libc.
Tanya Lattner is seeking volunteer moderators for EuroLLVM 2023.
Kristof Beyls shared minutes from the recent LLVM security group public sync-up.
A range of further thoughts were shared on the thread about adding a CharSet converter to the LLVM support library.
Marco Elver proposed adding
--exclude-inputs
to LLD, which after some discussion ended up with--remap-inputs
.
LLVM commits
llvm-lib gained support for ARM64EC libraries. This is a format intended to allow native Arm64 code to be mingled with emulated x86-64. ARM64X (files containing both ARM64EC and pure ARM64 variants in one file) support was also added. eb56ef3, cea5d28.
MC layer support for basic floating point arithmetic instructions was added to the M68k backend. 7943b99.
DivergenceAnalysis and LegacyDivergenceAnalysis were removed, as they have been superseded by UniformityAnalysis. ae77ace.
The llvm-compilers-check script was removed (it’s believed to be unused and unmaintained). c921ca4.
The RISC-V backend learned to combine certain
concat_vectors
of loads into strided loads. 18dc205.FuzzMutate gained an InsertFunctionStrategy what will add a random function declaration or definition to the module and add random function calls between instructions. 6998b34.
Support for the experimental RISC-V vector crypto extensions was updated to match version 0.5.1 of the specification. cb7dffd.
Clang commits
Clang’s dataflow analysis now features a HTML logger, which will build a HTML UI to inspect the analysis results. a443b3d.
The
__is_trivially_equality_comparable
builtin was introduced. e98776a.Version control information can now be passed to Clang’s CMake build system with
-DCLANG_VC_{REPOSITORY,REVISION}
. ee68f61.Appropriate RISC-V build attributes are now added by default when using Clang as an assembler. ea0dae0.
clang-tidy gained a performance-avoid-endl check, which suggests replacing
std::endl
with'\n'
. cd89330.