LLVM Weekly - #444, July 4th 2022
Welcome to the four hundred and forty-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
The Cambridge (UK) LLVM social is starting up again. The next one will take place on the 12th July, at 6:30pm. I’ll be delivering a presentation on WebAssembly in LLVM. I hope to see some of you there!
The recording from the Women in Compilers and Tools May meetup is now available. Michelle Strout hosted an “ask me anything” session.
The Compiler Explorer now features an LLVM optimisation pipeline viewer.
On the forums
Peter Smith shared a detailed description of work needed to support embedded targets in LLVM-libc and invited comments and input, indicating Arm is interested in contributing.
Bruno Cardoso Lopes posted a summary of discussion so far on adding an MLIR based Clang IR.
Tom Stellard shared the proposed LLVM 15.0.0 release schedule. The branch will be created on July 26th, with the goal of reaching the final release by September 6th.
Zixu Wang shared an update on clang-extract-api progress.
Martin Brænne proposed disabling clang-format in the clang/test directory tree. Responses so far have been positive.
Fernando Magno Quintão Pereira reports on work to support “lazification” of function arguments, and is seeking feedback / comments from interested parties.
River Riddle kicked off an RFC discussion on adding a binary serialisation format for MLIR. As noted in the post, the introduction of a binary format wouldn’t change stability guarantees.
George proposed adding in-tree Swift bindings to MLIR.
Logan Chien posted an RFC on adding an interpreter framework to MLIR.
Tom Stellard is seeking feedback in the form of an LLVM 14 release retrospective.
LLVM commits
A new “all” target feature was added for AArch64, which is accepted by disassemblers but intentionally rejected by clang. This is now used by default for llvm-objdump. 45f3a5a, 275862c.
A new autoupgrade conversion was implemented to expand constant expressions to instructions. 941c8e0.
Various uses of
Optional::hasValue
were removed to instead rely on the implicit cast to bool. a7938c7, d08f34b.A new command-line option was added to ensure AAPCS compliant frame records are produced on Arm. 70a5c52.
A new cost model was introduced for loop interchange. b941857.
MC layer support for the RISC-V Zicbo{m,z,p} extensions was added. 4f40ca5, 7bcfcab.
The RISCVMergeBaseOffset pass was improved, allowing it to optimise multiple memory operations that use the same offset. 02c8453.
llvm-objdump learned to dump embedded offloading data. d2d8b0a.
Clang commits
It’s now possible to ‘undo’ in clang-repl. dea5a9c.
Initial parsing and sema support was added for the OpenMP ‘parallel masked taskloop’ construct. d64ba89.
Other project commits
A new dense array attribute was added to MLIR. 7faf75b.
Transitive includes in libcxx that were removed since LLVM 14 were re-added in order to avoid breakage in user code in LLVM 15. de4a57c.
lld-macho gained support for Arm64 linker optimisation hints. a3f67f0, 573c7e6.
The flang driver gained support for
-O{0,1,2,3}
. 869385b.Underlying algorithms were added for LLVM libc’s new memory framework. 7f5d7bc.