LLVM Weekly - #419, January 10th 2022
Welcome to the four hundred and nineteenth 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
Even more recordings from the 2021 LLVM Developers' Meeting are now available. A tutorial on ORCv2 from the meeting has also been published.
Arseny Kapoulkine blogged about Proebsting’s Law, putting it to test using LLVM and Clang (is it really the case that compiler advances double computing power every 18 years?). The overall conclusion was “LLVM 11 tends to take 2x longer to compile code with optimizations, and as a result produces code that runs 10-20% faster (with occasional outliers in either direction), compared to LLVM 2.7 which is more than 10 years old.”
On the mailing lists
Tanya Lattner posted about LLVM’s move to Discourse. There is also an accompanying blog post and migration guide. In the posted timeline, the mailing lists will be put into read-only mode from February 1st and the archives migrated into Discourse between January 10th and January 20th. People are encouraged to use Discourse rather than the mailing list from January 10th onwards. This might be the last LLVM Weekly posted to llvm-dev. Remember, you can always subscribe at llvmweekly.org too.
Tom Stellard shared that a system is now in place for subscribing to GitHub issue labels. Simply request membership of the appropriate issue-subscribers-$LABEL_NAME team. As discussed in the thread, it’s not immediately obvious where to find the “Request to join button”. You need to click on the team, then click “Members”, then you’ll see the necessary button.
Augie Fackler posted an RFC on adding support for marking allocator functions in LLVM IR. The intent is to better support languages like Rust that have allocator functions with symbol names that aren’t recognised by LLVM as the libc allocator functions are. This generated a fair amount of discussion, for instance this question from Philip Reames.
Stella Stamenova kicked off a discussion about the responsibilities of a buildbot owner, especially around where responsibility lies when there are flaky tests.
Anastasia Stulova posted an RFC on supporting linking of SPIR-V object files using spirv-link from the SPIRV-Tools project.
Stefan Gränitz provided an overview of missing RISC-V functionality in LLVM’s JIT libraries.
Serge Guelton advertised an upcoming change to the AttrBuilder API intended to reduce the performance overhead.
Tom Stellard updated on the status of the 13.0.1 release, noting rc2 is due on Monday (today) and will hopefully be the last release candidate.
Kito Cheng and Jessica Clarke invited the LLVM community to review v1.0-rc1 of the RISC-V psABI. As noted in the email, this release is intended to mark a stable milestone, but future backwards-compatible changes or wording improvements will still be accepted and incorporated into future releases.
Tom Stellard picked up an old thread on automating releases with a tweaked suggestion, proposing that testers upload directly to GitHub (and also email the sha512 hash), and Tom later signs the binaries.
LLVM commits
MC layer support was added for the armv8.8-a hinted branch instruction and memcpy/memset acceleration instructions. 8c1e520, e35a3f1.
As part of the opaque pointer type transition, indirect inline asm operands now take an elementtype attribute. 8484bab, f430c1e, eddd5be.
Codegen for select/br/cmp as well as frame lowering infrastructure was added to the CSKY backend. 9566cf1.
A new pass was added to the RISC-V backend to replace redundant sext.w instructions with copies on RV64. 56ca11e.
A Discourse migration guide was committed. 645c845.
Clang commits
clang-format now accepts an option to explicitly specify a configuration file. b9e173f.
__builtin_trap
and__builtin_debugtrap
were documented. 491984c.
Other project commits
std::basic_string::resize_and_overwrite
was implemented in libcxx. bec50db.Using llvm-config to detect the LLVM installation is now deprecated in LLD’s CMake build system. a1da5f3.
Summary formatters were added to LLDB for libcxx std::string_view. 7244e9c.
LLDB’s data formatter documentation was expanded. 69c8e64.
A script was added to run clang-tidy on the whole MLIR codebase. 590a62d.
C and Python bindings were added for the MLIR quantization dialect types. 9bcf13b, 66d4090.