LLVM Weekly - #562, October 7th 2024
Welcome to the five hundred and sixty-second 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
Registration for the 2024 LLVM Developers' Meeting will close on October 11th. Also, volunteer session moderators are being sought.
Min-Yih Hsu write a blog explaining RVVBitsPerBlock in the RISC-V LLVM backend (which of course by necessity explains a lot more about how codegen for the RISC-V vector extension works!).
Tomas Vondra blogged about applying BOLT to
Postgres, exploring
the performance gains achieved on pgbench
.
Vinicius Espindola wrote on the LLVM blog about their GSoC project: ABI lowering in ClangIR.
Arm engineers blogged about their contributions to LLVM in the 19 release.
LLVM 19.1.1 was released.
Slides I presented at the RISC-V Summit Europe on supporting custom RISC-V extension in LLVM are now online (apologies, it wasn’t recorded so no video to link to).
The next LLVM meetup in Berlin will take place on October 23rd and will feature Valentin Haenel discussing Numba and llvmlite.
A Sydney LLVM meetup will take place on October 10th.
The next LLVM meetup in Munich will take place on October 30th.
Thanks to work from Fraser Cormack, a lexer for LLVM’s TableGen is now merged into Python’s pygments syntax highlighting library and should be in the next release.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Alina Sbirlea, Kristof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: MLIR C/C++ frontend, pointer authentication, MemorySSA, new contributors, OpenMP, Flang, SPIR-V, BOLT, RISC-V, MLIR, LLVM embedded toolchains.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tom Stellard sought ideas for how best to remove test binaries from the git repo, motivated by a desire to avoid attacks where someone modifies the build system in a subtle way that executes one of the binaries rather than reading them as test input.
Stella Laurenzo started a discussion on rethinking MLIR’s approach to low precision FP types.
Farzon Lotfi proposed allowing the Scalarizer pass to scalarize vectors returned in structs.
Tom Stellard is intending to archive some old repositories in the LLVM organisation on GitHub. As noted in the replies, this is an easily reversible operation.
Chaitanya Shahare shared that the development version of the in-progress LLVM website redesign is now live at www-new.llvm.org.
Slides and a recording of the recent MLIR meeting on XLA indexing maps are now available.
Todd Snider started an RFC discussion on a
.symtab_meta
, a new representation for metadata associated with a symbol.Jason Molenda has a proposal to revise the LLDB private ReadMemory APIs.
LLVM commits
A new (off by default) size-aware machine block placement strategy was introduced, which aims to reorder blocks to the number of fall-through jumps is maximised. 9016f27.
The WebAssembly type checker was further improved, with support added for blocks with input parameters and checking for
br_if
. a268bda.X86InstComments printing logic was made smarter, gaining the ability to print simplified expressions for
vpternlog
semantics. aa02b76.A comma-separated list of mangled vtable names can now be given to the IndirectCallPromotion pass, and it will skip vtable-based comparisons for these. 34f0edd.
APFloat support was added for “E8M0” from the Open Compute Project microscaling formats specification. 99f527d.
LLVMFrontendAtomic was added as a helper to emit libcalls for atomicrmw instructions that can’t be emitted (e.g. for complx types). aec87a2.
Basic definitions were added for Armv9.6-A. d0756ca.
CODE_OWNERS.TXT
was moved over toMaintainers.md
. bf488ed.
Clang commits
The RealtimeSanitizer documentation was updated to cover the supported runtime flags. 9d4ddf3.
clang-tidy gained a
bugprone-tagged-union-member-count
checker. 7b8f7be.A new static analyzer check was added to warn when the denominator in a division operation is a potentially attacker controlled (“tainted”) value. In such cases, an attacker may be able to cause a divide by zero. 09b8dbfa.
Implementation of P0522 “relaxed template template argument matching rules” was completed. 6afe567.
CMake cache files were added for building a toolchain targeting Hexagon. ea62db0.
Other project commits
The libcxx modulemap was rewritten to have fewer top-level modules, leading to a drastic improvement in compile time in some cases. 41145fe.
Branch Target Identification (BTI) aware long branch thunks are now supported for AArch64 in the ELF LLD. c4d9cd8.
The documentation for contributing to lldb-dap was improved. 6c137b7.
The f8E8M0FNU type proposed in the Open Compute MX Specification was added to MLIR. 3f9caba.