LLVM Weekly - #573, December 23rd 2024
Welcome to the five hundred and seventy-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 via email: asb@asbradbury.org, or Mastodon: @llvmweekly@fosstodon.org / @asb@fosstodon.org, or Bluesky: @llvmweekly.org / @asbradbury.org.
News and articles from around the web and events
Peter Chou blogged about their GSoC project to improve the clang-doc documentation generator.
The dates for EuroLLVM and AsiaLLVM 2025 have been announced. EuroLLVM will take place April 14th-16th in Berlin and AsiaLLVM on June 10th in Tokyo.
As usual you can check the LLVM calendar for planned events. I won’t list them for the coming week as it seems likely many will be canceled due to holidays/christmas.
On the forums
Mingming Liu, Snehasish Kumar, and David Xinliang Li started an RFC thread on profile guided static data partitioning, for segrating data in binay ELF sections based on access frequency.
LLVM 19.1.6 was released.
Jonathan Thackray proposes splitting Clang’s CGbuiltin.cpp noting it is over 23000 lines long and takes over a minute to compile.
There was further discussion on shrink wrap save/restore points splitting with notes from a recent RISC-V contributor sync-up on this shared by Alex Bradbury.
gbMattN suggests TypeSanitizer should use an ‘outlined’ instrumentation mode by default.
Hongren Zheng proposes adding
OpAsm{Type,Attr}Interface
to MLIR to aid pretty-printing.Suraj Sudhir posted an MLIR RFC on incrementing the TOSA dialect version to v1.0.
Fraser Cormack started an RFC thread on changing the behaviour of elementwise builtins in scalar integer types.
LLVM commits
The type sanitizer was committed. a487b79.
SDNode::uses()
was renamed toSDNode::users()
andSDNode::use_iterator
was split intouser_iterator
anduse_iterator
meaning you can now write range-based for loops usingSDUse&
andSDNode::uses
. 104ad92, e6b2495.llvm-mc
now accepts a--hex
argument to disassemble unprefixed hex bytes. c6ff809.The RISCVVLOptimizer pass is now enabled by default for RISC-V. 169c32e.
The LLVM Security Group was renamed to the LLVM Security Response Group. ccb66bf.
The DXILResourceAccess pass was added, transforming resource access via
llvm.dx.resource.getpointer
to buffer loads and stores. 0fca76d.llvm-exegesis gained support for RISC-V. 8e8692a.
A scheduling model was added for the MIPS P8700 RISC-V CPU and the scalar part of the scheduling model for the Tenstorrent Ascalon D8. 3222060, e934a39.
The unused PoisonChecking utility pass was deleted. 0517772.
The Hexagon backend now supports the Hexagon V75 architecture. 8b37c1c.
Clang commits
Floating point, pointer, and function types were added to ClangIR. 8ae8a90.
Initial type sanitizer support was added to Clang. c135f6f.
Matrix types can now be used in pseudo-destructor expressions, which allows them to be stored in STL containers. eb5c211.
A
-Wtautological-compare
diagnostic was introduced which warns when a check for pointer addition overflow is always true or false. 6d34cfa.The
-ubsan-unique-traps
flag was removed as the functionality has been superseded by-fno-sanitize-merge
. cb8a90b, 5bb6503.ThreadSafetyAnalysis was improved to support passing scoped capabilities into functions. c1e7e45.
Other project commits
MLIR’s python binding was ported to nanobind, motivated by improved performance. b56d1ec, 5cd4274.
BOLT gained a conservatively safe variant of its identical code folding implementation. 3c357a49.
The Type Sanitizer runtime was committed. 641fbf1.
Flang now supports the
UNSIGNED
datatype with-funsigned
. fc97d2e.LLDB’s progress report mechanism can now be rate limited. 0dbdc23.