LLVM Weekly - #421, January 24th 2022
Welcome to the four hundred and twenty-first 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.
As a reminder, LLVM is moving to Discourse. LLVM Weekly is now being posted to the LLVM Discourse forum rather than llvm-dev (which is currently due to be shut to new posts from February 1st). I’ve also taken the bold step of renaming our regular “On the mailing lists” section to “On the forums”.
News and articles from around the web
Michał Górny wrote up a summary of LLDB FreeBSD kernel debugging support.
The January 2022 mailing of C++ papers is now available.
On the forums
Sylvestre Ledru shared news on recent improvements on apt.llvm.org. Updates include that arm64 packages are now being generated for all Debian and Ubuntu supported versions, MLIR packages are generated from LLVM 13, and sources and dsc files are signed and published using sigstore.
LLVM 13.0.1-rc3 has been tagged.
Nuno Lopes shared statistics on usage of UndefValue/PoisonValue in LLVM, as well as stats on use of undef/poison as constants in tests. Nuno is planning a patch to the LangRef to more clearly document that usage of undef is discouraged.
Jessica Paquette started a new thread collecting beginner friendly resources for people new to LLVM.
Slides and a recording are now available from the most recent Open MLIR meeting, about a data-centric dialect for MLIR.
Tom Stellard shared the proposed LLVM 14.0.0 release schedule. It proposes creating the 14.x branch on February 1st, heading towards 14.0.0-final on March 15th.
Tom Stellard suggested adding a GitHub milestone/project to track C++ 20 implementation in Clang. All respondents so far are in favour.
Serge Guelton kicked off discussion around work to cleanup LLVM headers, inspired by recent work to improve Linux kernel build times.
Mehdi Amini posted an MLIR RFC on adding support for IR versioning.
LLVM commits
The now-ratified RVV related extensions are no longer marked as experimental, and support was added for the RISC-V zve extensions. 8eae99d, 3cf15af.
The 2021 LLVM Security Group transparency report was added. 4d82ae6.
Wasm exception handling and Wasm setjump/longjump can now be used together. eb675e9.
The profile inference algorithm was improved with a more effective rebalancer. 13d1364.
The llvm.coro.align intrinsic was added. c8ecf12.
RISC-V label subtraction and addition and R_RISCV_SET* and R_RISCV_32_PCREL relocations were added to JITLink. dc18c5f, f7d4caf.
A machine learning based register allocation eviction advisor was added. e67430c.
MC layer support was added for the RISC-V ‘zbkb’ and ‘zbkc’ scalar cryptography extensions. 7ee1c16, e796eaf.
ORCv2 documentation was expanded with guidance on how to remove a JITDylib. 329feeb.
Clang commits
The patch to rename enable-noundef-analysis to disable-noundef-analysis and turn it off by default landed again, and seems to be sticking this time. 1b1c8d8.
Documentation was added for the clang-offload-wrapper tool. 0731f6b.
clang-format gained a new BlockIndent option to AlignAfterOpenBracket that allows you to configure it so a linebreak is always inserted after an opening paren if the parameters won’t fit on a single line, with the closing paren emitted on its own line. 966f24e.
Warnings were added for potential cases of unaligned access when -mno-unaligned-access has been specified. 35737df.