LLVM Weekly - #404, September 27th 2021
Welcome to the four hundred and fourth 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
Michał Górny blogged about improving GDB register model compatibility with LLDB.
The next Women in Compilers and Tools meetup will take place on September 31st (or early morning October 1st for those in European timezones!). It will feature and interview with Teresa Johnson, Senior Staff Engineer at Google and an active contributor to the LLVM open source project.
The call for proposals for the 2021 LLVM Developers' Meeting closes today (Sep 27th) at 5pm PDT.
On the mailing lists
Discussion has continued on the suggestion to have clang clear the AST before running backed optimisations. David Blaikie suggests making it the default mode going forwards to ensure new features don’t accidentally become dependent on access to the AST.
Jayson Yan proposed adding warnings to Clang against the use of the
%n
format string specifier.Noah Shutty kicked off a discussion on moving some LLDB libraries into the core LLVM project, e.g. TCPSocket and the IOObject hierarchy.
Jonas Devlieghere wrote to the LLDB list to update on LLDB reproducers. As they will require a non-trivial investment to reach production quality and there isn’t bandwidth for this, Jonas proposes transforming them into something resembling sysdiagnose on Apple platforms “an archive containing a variety of information to help diagnose a bug, but without the machinery to automatically reproduce the bug”.
LLVM 13.0.0-rc4 has been tagged.
LLVM GPU News issue 20 is out now.
LLVM commits
The MergeICmps transformation was updated so it won’t reorder unmerged comparisons. This change addresses correctness issues. f2fa6ad.
Support was added for Armv8.4 Large System Extension 2 atomicity rules. 13aa102.
The GlobalISel legalizer’s
eraseInstr
utility function will delete trivially dead users after deleting an instruction. e4c46dd.A new RISCVGatherScatterLowering pass was added to help recognise vector length specified strided loads/stores from gather/scatter. d85e347.
The commit to allow rematerialisation of virtual register uses was reverted. 08d7eec.
The export.sh script was extended to allow the creation of source tarballs for unreleased or untagged code. 6deaebe.
Clang commits
clang-format gained the ability to reorder const/volatile qualifiers on either the left or the right. a44ab17.
-Wunused-value
warnings are now diagnosed based on CFG reachability. cbbf2e8. REVERTEDclang-offload-bundler documentation was expanded. ee31ad0.
RISC-V vector intrinsics now have a tail policy argument. 7afa61e.
Other project commits
LLVM’s libc gained implementations of div, ldiv, lldiv, imadiv, bsearch, and qsort. 74670e7, 32a5007, 5eb6b82.
A basic C REPL was added to the LLDB code base in order to act as a test case for LLDB’s REPL infrastructure. c223299.
Polly added support for user-direct loop distribution/fission. e470f92.
--why-extract
was added to LLD’s ELF linker to query why archive members or lazy object files are extracted. a954bb1.