LLVM Weekly - #424, February 14th 2022
Welcome to the four hundred and twenty-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
MaskRay blogged about COMMON symbols.
A new paper on MLIR is up on arXiv - Composable and Modular Code Generation in MLIR: A Structured and Retargetable Approach to Tensor Compiler Construction.
LLVM GPU News #28 is out.
On the forums
Duncan P. N. Exon Smith posted an RFC on adding an LLVM content addressable storage library to facilitate experiments with using content-based caching in LLVM tools. The proposal has had most positive feedback. Chris Lattner made several suggestions. Duncan also provided some information on the direction Rust is going in.
Tobias Hieta proposed increasing the minimum Clang and GCC requirements for LLVM in order to allow C++17 usage. Mehdi Amini highlighted that raising the minimum version may cause challenges in distributing the compiler/library binaries, which should also be considered. Tobias followed up with a list of potential next steps.
Peter Smith is seeking feedback on an LLD deprecation policy.
River Riddle provided an update on removing the MLIR standard dialect, noting that it now only had 4 operations left.
LLVM 14.0.0-rc1 has been tagged.
Alex Rosenberg raised concerns about the Clang “pseudo parser” being committed without full consensus.
On behalf of the LLVM Foundation Board of Directors, Tom Stellard reported that the Board had received the comment summary regarding LLVM’s code review process, but need more time to make a decision and will wait until at least the Discourse retrospective feedback collections is complete.
On behalf of the LLVM Foundation, Tanya Lattner is inviting feedback on the move to Discourse. The feedback is requested by March 7th, and the post lists questions to answer and points to consider in your response. Also on the topic of the Discourse migration, mailing list mode is now enabled again and James Y Knight noted there seems to be issues with dropped content in some imported emails.
EuroLLVM 2022 is expected to take place in person in the 2nd week of May in the UK. Volunteers are sought for the program committee.
Pavel Labath posted an RFC on adding support for a system-wide lldbinit.
Tom Stellard shared an RFC for adding new automation around creating issues for backporting bugfixes to release branches.
Slides and a recording from last week’s Open MLIR meeting (about the MLIR-PyTACO bridge) are now available.
Fangrui Song raised the prospect of removing support for ‘standalone builds’, noting they are frequently broken. Multiple respondents noted that standalone builds are useful for packaging purposes, but the question of who could take ownership of maintaining support remains open.
There have been several proposals in the last week regarding new working groups or meeting times for existing groups. An in-person Women in Compilers and Tools meetup is proposed for the week of the 7th March (the week of International Women’s day). Participate in the poll if you’re interested. Meanwhile, Volodymyr Turanskyy is establishing a regular LLVM Embedded Toolchains Working Group and sync-up and Jeff Heath and others at Intel are proposing a Clang C/C++ language working group. This group would focus on facilitating and accelerating standard C/C++ language development in Clang/LLVM.
David Chisnall initiated a discussion about whether it’s time to start upstreaming CHERI support to LLVM.
LLVM commits
The LoongArch backend started to land upstream. 42fd2bf, e53e6ec, 444c6d2, 33388ae, 6caee48, af3bc0d.
Support was added in the X86 backend for zeroing certain registers before the function returns (-fzero-call-used-regs in Clang). deaf22b.
The VarLenCodeEmitterGen infrastructure was introduced, providing common infrastructure for variable-length instruction encodings. It has been put to use by the M68k backend. 31f9519, 08f2b0d.
A new shouldHoist hook was added to TargetInstrInfo, which is queried by MachineLICM and can be used to override hoisting decisions for a given target. 42ac4e1.
debuginfod was moved out of libLLVM. 4a6553f.
ArgumentPromotion was updated to be compatible with opaque pointers. 68c1eeb.
Inline asm constraint support, ProcessorModel definitions, and a disassembler were added for the CSKY backend. a190fcd, 9ee96aa, ec642ce.
Complex Arm IT (‘if-then’) blocks are no longer considered “performance deprecated” by Arm, and LLVM has been updated to reflect this. 3d76621.
llvm.vp.fma and llvm.vp.fneg intrinsics were introduced. cef177d, 60745fb.
GlobalISel for M68k gained an implementation of lowerCall. 5aa3af3.
Clang commits
A new shared-ptr-array-mismatch check was added to clang-tidy. It will identify initialisations of C++ shared pointers to non-array type that are initialised with an array. c63522e.
The -ffinite-math-only and -fhonour-{infinities,infinites,nans} options were documented. 8440ec6.
clangd’s stdlib headers handling was moved to Clang. 46a6f5a.
clang-format’s handling of ‘requires’ and ‘concept’ was improved. 9aab0db.
Other project commits
The ControlFlow dialect was split out from the Standard MLIR dialect. ace0160.
Continuous and pre-merge testing of the Bazel LLVM build was documented. 088fbc0.
The Flang driver gained support for the
-emit-mlir
option. 69c3309.An optimised memmove implementation was added to LLVM’s libc. 83f9b13.
The
<experimental/filesystem>
header (originally intended to be removed after LLVM 11) was removed from libcxx. 861386d.