LLVM Weekly - #445, July 11th 2022
Welcome to the four hundred and forty-fifth 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 LLVM Bay area meetup is happening today, and if you’re in Cambridge, UK then you’ll want to attend the Cambridge LLVM social tomorrow (Tuesday) where I’ll be presenting on WebAssembly in LLVM.
MaskRay blogged about the implementation of RISC-V linker relaxation in LLD.
The call for presentations for the 2022 US LLVM Developers' Meeting is now open. The conference will take place Nov 8-9 in San Jose, and submissions should be sent in by August 30th.
On the forums
Louis Dionne proposed introducing a new
-funstable
flag to enable experimental/unstable language and library features in Clang. The proposal was later refined based on feedback to instead suggest-fexperimental-library
, only controlling whether the C++ library provides experimental features.There has been a substantial amount of follow-on discussion in the thread proposing an MLIR interpreter framework. e.g. Renato Golin’s comments on the challenges bringing downstream code upstream, Chris Lattner’s comment on challenges with an MLIR or even just an ‘ML’ interpreter.
The May 2022 LLVM Foundation Board Meeting Minutes are now published.
Tom Stellard suggests reverting the change in policy on libclang.so naming.
Orlando Cazalet-Hyams provided an update on the RFC to specify variable locations in IR.
The current 2 year term of the LLVM Foundation Board of Directors will come to an end later this year, so the Board is looking for applications from those interested in joining and contributing their time to support its programs.
LLVM GPU News #37 is out.
Nikita Popov provided an update on efforts to remove constant expressions.
Stephen Tozer bumped the RFC thread on adding a new machine operand type for variadic DBG_INSTR_REF instructions.
Sean Perry proposed adding support for having a default base Clang config file.
LLVM commits
LoongArch gained codegen support for load/store operations, conditional branches, function calls, and more. 5b4851e, b940fe6, 3610d5f, c2d1d9f.
A minimal HTTP server was added to the debuginfod library and used to implement an initial LLVM debuginfod server. 8366e21, 36f0190.
An initial scheduling model for the Neoverse N2 was committed. 03af9ba.
Support was removed for the insertvalue and div/rem constant expression. 7283f48, 11950ef.
LoongArch support was added to update_llc_test_checks. 53d5ace.
Support for the RDPRU instruction (available on Zen2 processors) was added. 08e4fe6.
Support for fmax and fmin atomicrmw operations was added. 1023dda.
Tracking and deduplication of SPIR-V global entities was added. fa2a7a25.
A HasNoUse predicate for PatFrags was introduced. c42fe5b.
Clang commits
clang-format was disabled entirely for test directories. fee77a2.
Documentation was added on debugging C++ coroutines. 1934b3a.
__attribute__((format))
can now be used on non-variadic functions. 92edd74.The
-Warray-parameter
warning was added. It warns about re-declarations of functions involving arguments of array or pointer types of inconsistent kinds or forms. cc5b772.The new bugprone-assignment-in-if-condition clang-tidy checker will warn when there’s an assignment within an if statement condition expression. 05130a6.
Other project commits
LLD’s ELF linker implemented linker relaxation for
R_RISCV_ALIGN
,R_RISCV_CALL
, andR_RISCV_CALL_PLT
. 6611d58, 75e551e.The MLIR language server now supports code completions. ed2fb17, 2e41ea3, fe4f512.
LLVM’s libc gained support for float to hexadeciaml through %a/%A. f9f8693.
std::ranges::merge, ::remove, ::set_difference, and more were implemented in libcxx. 25607d1, f8cbe3c, 1cdec6c, 23c7328, c945bd0.
The “op splitting” transform was implemented in MLIR. ff6e550.
Sparse and dense data-flow analysis was implemented in MLIR. 9432fbf, d80c271.
libomptarget was updated to follow the standard LLVM naming conventions. d27d0a6.