LLVM Weekly - #551, July 22nd 2024
Welcome to the five hundred and fifty-first 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
Luke Lau blogged about changes to how the RISC-V LLVM backend inserts vsetvli (vector configuration) instructions, focusing particularly on how to break up such a potentially disruptive change into incrementally reviewable patches.
Fangrui Song blogged about rethinking mapping symbols for efficiency.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Johannes Doerfert, Amara Emerson.
- Online sync-ups on the following topics: Flang, pointer authentication, new contributors, LLVM/Offload, classic Flang, loop optimisations, OpenMP for Flang, MLIR.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
MLIR News #68 is now available.
Tom Stellard proposed changing the process for requesting commit access.
Vladislav Dzhidzhoev started an RFC discussion on allowing LLDB shell tests to be run against a remote target platform.
Min-Yih Hsu proposes refining the semantics of experimental.get.vector.length with the hope of constraining the semantics enough to allow more optimisations, while hopefully being generic enough for future targets.
Alexander Belyaev kicked off an MLIR RFC discussion on modeling how data is laid out in registers with respects to the threads of a warp.
Jon Chesterfield started a discussion on the use of user branches in the LLVM repo.
Sjoerd Meijer started a new RFC thread proposing to revisit the decision and approach to deprecating Ofast, highlighting issuse such as compatibility with GCC.
The LLVM 19.x branch will happen tomorrow 23rd of July.
“Harini0924” proposed enabling the lit internal shell for tests by default, outlining how this an increase speed of test execution and avoid issues due to inconsistencies in shell behaviour across platforms.
Michael Kruse suggested refactoring Clang’s CGAtomic.cpp to a new LLVMFrontendAtomiC library in order to reuse the logic for Flang. A number of respondents are suggesting that with advances in atomics lowering at the IR level, the amount of logic needed by frontends should be much reduced so this may not be necessary.
LLVM commits
llvm.memcpy.inline no longer requires a constant length. 522fd53.
3DNow intrinsics and builtin support was removed. f0eb558.
A
dxil::ResourceInfo
utility was added to generate resource metadata and annotations for DXIL and documentation was added for resource handling. 48f55ba, 9be5f4f.Hooks were added to prefer fixed over scalable vectorisation on AArch64 if the cost model calculates equal cost for them. c5329c8.
An
llvm.experimental.vector.compress
intrinsic was added. 177ce19.APFloat learned to handle the “f8E4M3” floating point type. f363317.
Three-way integer comparison instructions were added to GlobalISel. 1cc1072.
Codegen support was added for the Arm64EC
hybrid_patchable
attribute. 6cc8774.
Clang commits
A deprecation warning is now emitted for
-Ofast
. 2ef7cbf.Clang’s lifetime analysis was extended to support assignments for pointer-like objects. 3eba28d.
The source file name for template instantiations is now shown in
-ftime-trace
. cd495d2.Function pointer re-signing was implemented for PAC. f6b06b4.
API notes can now be used to add Clang attributes to C++ methods. 8a79dc7.
clangd gained initial support for C++20 modules. fe6c240.
Other project commits
An implementation of
__init_riscv_feature_bits
was added to compiler-rt. a41a4ac.Basic
-mtune
supported was introduced to flang. f1d3fe7.fp16 support in libclc was improved. 7e6a739.
LLDB now has a frame recogniser for
__builtin_verbose_trap
which can display the failure-reason string. 8a27ef6.Initial vector type legalisation for function signatures was added to MLIR for SPIRV. 6867e49.