LLVM Weekly - #525, January 22nd 2024
Welcome to the five hundred and twenty-fifth 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
As a reminder, the call for proposals for EuroLLVM 2024 is open until February 4th.
The next LLVM meetup in Munich is taking place on January 29th, and the next Darmstadt meetup is on January 31st featuring a talk from Kai Plociennik on an OpenMP Offloading compiler for the STX accelerator.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Kristof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, pointer authentication, SYCL, libc++, OpenMP, classic Flang, C/C++ language working group, loop optimisations, OpenMP in flang, MLIR open meeting, PowerPC, SPIR-V, LLVM/offload.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tom Stellard put out an RFC thread on establishing new criteria for receiving and retaining commit access (see especially v2 of the proposal. This generated a lot of discussion covering topics such as the proposed threshold for requesting commit access, and on the issue of removing commit access for contributors who are no longer active. Chris Lattner queried whether approaches to moving LLVM releases to being controlled by a different ACL may solve some of the supply chain security related issues without requiring big changes in how commit rights are handled.
Anton Korobeynikov put out a call for mentors and projects for Google Summer of Code this year.
Tobias Hieta is seeking help with windows CI resources.
Krishna Chaitanya Sankisa is facing scalability issues for a module with ~40k functions all marked
always_inline
and is seeking advice on how to address this.David Spickett is seeking input on an automated comment about buildbots to be posted after a contributor’s first PR is merged.
Djordje Todorovic announced autocheck, a source code analysis tool meant to check code against the AUTOSAR automotive standard. Unfortunately the code is temporarily unavailable seemingly due to some concerns raised about restrictions put upon the AUTOSAR standard.
Pierre van Houtryve proposed the addition of memory model relaxation annotations, motivated by the need to implement some GPU-specific features in the AMDGPU backend.
Tom Stellard is checking nobody has objections to enabling fine-grained GitHub access tokens for the LLVM organisation.
Fabian Mora posted an MLIR RFC on adding a
gpu.conditional_execution
operation. So far there’s some confusion about how exactly the operation would be used.LLVM’s Phabricator instance is now back online and MaskRay has been working to complete the static backup.
Joshua Batista proposed adding an
_elementwise
attribute to the Clang front-end. The goal is to make it easy to define vector operations on vector arguments without needing to create a unique elementwise builtin for the specific builtin.Stella Laurenzo is intending to discontinue pytorch 1 binary releases unless there are objections.
“cxy” proposes extending MLIR’s tiling interface to allow fusion with consumers.
Fabian Mora proposed adding GPU compilation support for OpenMP target offload constructs within MLIR.
Hiroshi Yamauchi is looking for advice on including demangled names in debug info.
Andreas Jonson made a proposal for supporting metadata attachments for function arguments.
Perry Gibson asked about introducing an option to retain original identifier names in MLIR for debugging purposes.
LLVM commits
Numbered temporaries in LLVM IR (e.g.
%2 = add i32 %1, 4
) are no longer required to be consecutive, though must still be increasing within a function. 6f37114.Basic definitions were added for the Apple XROS platform. 7d3466b, 735adbf.
Codegen support was committed for RISC-V RVE (16 registers rather than 32 registers) and the ilp32e and lp64e ABIs. 3ac9fe6.
Native CPU detection was added for the Microsoft Azure Cobalt 100. a690e86.
A scheduler model was added for the SiFive P450. 847c787.
MC layer definitions for new additions in the LoongArch v1.1 instruction set were committed. 84bdee2.
Almost all AMDGPU
llc
tests were moved to using-mtriple
rather than-march
. 9e9907f.GlobalMerge was ported to the new pass manager. bd9e145.
Corpus extraction tooling was upstreamed to the MLGO (machine learning guided optimisation) project. a387bce.
Clang commits
Clang is no longer so apologetic in its error messages. 24c89bb.
New clang-tidy checks where added: readability-avoid-nested-conditional-operator, readability-redundant-casting, and readability-redundant-inline-specifier. 8e21557, 1ad1f98, 7a8f5d9.
Documentation was committed for
-fbounds-safety
. dda2ce8.The libclang Python bindings now longer support Python 2 and now requires Python 3.6. 75f2321.
Apple XROS is now recognised in the Clang frontend and driver. a4fe6a1.
A SkipMacroDefinitionBody option was added to clang-format. a7d7da6.
Other project commits
LLVM’s libc now uses Clang’s scoped atomics if available. a9ca820.
In production hardening modes, libcxx will now trap rather than abort. 58780b8.
LLD will now produce an error if it encounters an
R_RISCV_ALIGN
relocation that it can’t satisfy. 987123e.LLDB gained support or the XROS/AppleXR platform. 3b6a8f8.
Overflow flags are now supported in MLIR’s arith dialect. 8934b10.