LLVM Weekly - #553, August 5th 2024
Welcome to the five hundred and fifty-third 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
Jeremy Kun blogged about defining MLIR patterns with PDLL.
The next Portland LLVM social will be taking place on August 15th.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Anastasia Stulova, Anton Korobeynikov, Quentin Colombet, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, pointer authentication, SPIR-V, MemorySSA, libc++, new contributors, LLVM/Offload, classic flang, Clang C/C++ language working group, loop optimisation, OpenMP for flang, MLIR.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
LLVM 19.1.0-rc2 was tagged. As Tobias Hieta noted “As we pass the second RC we should make sure we are more conservative with the fixes we pick. Make sure you don’t submit backports for things except regressions and important bug fixes. New features will have to wait until LLVM 20 at this point.”
“ArcaneNibble” shared an RFC on multilib selection for RISC-V bare metal, discussing how to move towards adopting the YAML configuration file.
Ivan R. Ivanov introduced the input-gen tool for automatically generating runnable inputs for IR.
Stella Laurenzo proposes drastically reducing the documented scope of the torch-mlir project, including things like making it clear that it’s not positioned as an end-user facing project.
Lang Hames started a discussion about removing MCJIT and RuntimeDyld from LLVM after a deprecation period, and started a separate thread to discuss adding deprecation warnings to those libraries.
Donát Nagy shared thoughts on improving loop modeling with Clang Static Analyzer.
Jonas Paulsson kicked off an RFC thread on introducing a NoExt attribute so ABI lowering can always require an explicit extension type attribute.
LLVM commits
Following an RFC discussion, per-function numbers were added to basic blocks. 9f75270.
MVT::SimpleValueType
was extended fromuint8_t
touint16_t
as 208 of 256 MVTs were already used, though a followup patch limited the maximum MVT to 511 for now. a4c6ebe, e2c74aa.SandboxIR implementation continues with e.g. GetElementPtr, CallBrInst. f9765a2, cfb92be.
An
LLVMCantFail
function as added to LLVM’s C API. 45ef0d4.LowerConstantIntrinsics was merged into PreIselIntrinsicLowering. b5fc083.
The LangRef documentation on some fast-math flags was updated. 858bea8.
Support for the f8E3M4 IEEE 754 float type was added to APFloat. abc2fe3.
Clang commits
The AVX10.2 X86 ISA option is now supported by clang, along with the relevant builtins. 10bad2c, 0dba538, 3d5cc7e.
Clarifications were made about the
-Ofast
deprecation. 48d4d4b.
Other project commits
An AArch64 implementation of setjmp/longjmp was added to LLVM’s libc. 2a6268d.
Tutorial documentation was committed for the mlir-opt tool. 7f19686.
ASan’s one definition rule violation checking was sped up substantially. c584c42.
libcxx’s
std::unique_lock
is now available under_LIBCPP_HAS_NO_THREADS
. e9d5842.libunwind can now build for RISC-V RV32E. b33a675.
Offload can now track allocations and deallocations in order to report issues such as double frees. c95abe9.