LLVM Weekly - #449, August 8th 2022
Welcome to the four hundred and forty-ninth 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
As a reminder, the LLVM Bay Area meetup is today, August 8th.
The next Cambridge UK LLVM social will take place on 6th September 2022. Anastasia Stulova will present “SPIR-V support in Clang/LLVM”.
The next Berlin LLVM meetup will take place on 24th August. Alex Denisov will give an intro to MLIR.
The video from the June Women in Compilers and Tools meetup is now available. Angélica Moreira presents on static profiling.
An in-person MLIR Bay Area Development summit is planned for October 5th.
The call for papers for this year’s LLVM in HPC workshop at SC22 remains open until August 19th.
JeanHeyd Meneide wrote up a summary of agreed new features in C23.
On the forums
Raghavan Raman created an RFC on introducing a high-level machine learning dialect in MLIR, arguing there’s a need for a dialect at a higher level of abstraction than the Linalg dialect. Thsi generated a lot of discussion. Highlighting a few posts: Stella Laurenzo wondered if Google’s ‘MHLO’ moving to open governance would meet this need (Eugene Burmako, on the MHLO team, suggested this is a possible path), while Sean Silva provided a detailed thoughts based on Torch-MLIR’s experience.
Guilherme Valarini posted an OpenMP RFC about re-scheduling implicit target tasks for non-blocking nowait execution.
Thanks to coordination work by Tobias Hieta, C++17 features can now be used in the LLVM codebase. Shilei Tian proposed making the same change for libomptarget.
Matheus Izvekov shared an RFC on improving Clang diagnostics with template specialisation resugaring. This is being pursued as part of a GSoC project.
Marco Elver made a detailed proposal on generating and storing PC-keyed metadata associated with IR instructions that can be retrieved at runtime. Potential use cases include sanitizers and other binary instrumentation tools.
Adrian Tong shared a proposal to enable Machine Function Splitting on AArch64.
Sean Silva shared the slides and recording from the August Torch-MLIR community meeting.
Yueh Ting Chen is seeking feedback from the LLVM community on the proposed v1.0 RVV (RISC-V Vector) C intrinsic API.
Yaxun Liu is seeking feedback on a proposed pragma for nontemporal load/store.
Fangrui Song provided an update on efforts to parallelise input file parsing in LLD.
Mike Urbach reported that CIRCT has now been added to Compiler Explorer.
Tanya Lattner shared the LLVM Foundation board minutes for June 2022.
Quinn Dawkins is working on an updated MLIR dialect overview diagram and seeking feedback/corrections.
Tom Stellard provided an update on the LLVM 15 release process, noting that Tobias Hieta has kindly volunteered to help with signing and tagging some of the release candidates. Tom is also seeking volunteers who can help with bug triage.
LLVM GPU News #39 is out.
LLVM commits
C++17 features can now be used within the LLVM codebase, and the base toolchain requirements have been raised to reflect this. b135650.
The RISC-V backend gained a pseudo instruction pass that runs prior to register allocator, offering more opportunities for optimisation. 260a641, 0bc177b.
An
@llvm.threadlocal.address
intrinsic was introduced. 9701053.LLVM’s CMake build system was updated to make LoongArch builds of LLVM possible. e48a0df, 313ce72.
TableGen is now used to create
SPIRVBaseInfo*
. b25b507.A new constructor was added to allow creating a
SmallVector<T>
from anArrayRef
of items convertible to typeT
. 1bd31a6.
Clang commits
Support was added for a C++20 feature allowing capturing structured bindings in lambdas. 127bf44.
Support was added for RISC-V Vector policy functions. 71fd661, 7542e72, and more.
The
__bf16
type is now enabled for all AArch64 targets. 8c30f4a.
Other project commits
A number of
ranges
features were implemented.ranges::remove_copy{,_if}
,ranges::replace_copy{,if}
,ranges::sample
,ranges::{prev,next}_permutation
,ranges::rotate
,ranges::clamp
,ranges::is_permutation
. 760d2b4, 93172c1. 6bdb642, 68264b6, 36c746c. a203acb. 4038c85.The type field was removed from MLIR attributes. e179532.
The libc website look and feel was updated. f493b21.
LLVM’s libc gained implementations of
tanhf
,pthread_setname_np
, andpthread_getname_np
. 5ef987c, 658c84e.Basic RISC-V register enum definitions were added for LLDB. 768e59d.