LLVM Weekly - #458, October 10th 2022
Welcome to the four hundred and fifty-eighth 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 2022-2024 LLVM Foundation Board of Directors has been announced.
LLVM 15.0.2 was released.
The Women in Compilers and Tools October meetup will be in person in Los Altos CA on October 26th. RSVP on Meetup.
On the forums
Jan Korous and collaborators initiated an RFC discussion on C++ buffer hardening, aiming to achieve this thorugh a hardened C++ standard library and introduction of a C++ safe buffers programming model. This generated a lot of discussion.
In a thread about Clang’s performance when lexing macro arguments, Nick Desaulniers points out that since 2020 Clang compile times have been worse than GCC for the Linux kernel (7-28% worse) and shares a profile from building the kernel.
River Riddle shared a summary of recent updates to MLIR and TableGen language server tooling.
Paul Walker wrote to highlight a proposed change to the language reference to relax the constness of vscale.
Daniel Thornburgh looped back on the thread about LTO and libcalls to add some additional thoughts.
Louis Dionne announced that support for building libc++, libc++abi, and libunwind using
LLVM_ENABLE_PROJECTS
was removed.Tanya Lattner reminds us to submit round table proposals for the 2022 US LLVM Dev Meeting.
Nikita Popov proposed removing the Go bindings as they appear to be unmaintained. All respondents so far are in favour.
“imv1990” announced MLL: an extenisble front-end for MLIR, describing it as “a simple yet powerful way to generate MLIR from a python like language”.
Kristof Beyls noted that it’s time to submit a proposal for an LLVM dev room at FOSDEM and is seeking anyone who is interesting in organising or helping with organising.
Kaiyan Chang proposes JavaScript and WebAssembly MLIR dialects. Respondents so far are asking for clarity on the scope of such dialects and how they may be used.
Alex Zinenko posted an RFC on a type systems for the MLIR transform dialect.
eop Chen shared on RFC on enabling the LoopVectorizer for vectorization of width 1.
LLVM commits
APFloat gained support for the E5M2 FP8 format. e28b15b.
Inefficiencies in PowerPC atomics code gen were addressed. 4ea121c.
RISC-V’s SExtWRemoval pass can now recognize sign extended values that come from arguments. ece4bb5.
Various additional tools were added to llvm-driver (which combines multiple LLVM tool into one executable). d5090cd.
The PlaceSafepoints pass was removed as it has no known users and additional work would be required to port it to the new pass manager. cb66e12.
The libFuzzer documentation was updated to note the fact that the original authors are no longer actively working on it. ec96aea.
Clang commits
The
CLANG_ENABLE_OPAQUE_POINTERS
CMake option was removed. This means it’s no longer possible to disable opaque pointers by default in Clang (though it can still be done via cc1 options). d785a8e.The
bugprone-suspicious-realloc-usage
clang-tidy checker was introduced. 6d9eb53.A fix-it hint was added for the
-Wdefaulted-dunction-deleted
warning. 1376c73.Lowering of homogeneous aggregates in the MSVC AArch64 ABI was fixed. 2e1c1d6.
Other project commits
Flang now documents Fortran aliasing rules. 2253b06.
LLVM’s libc gained implementations of fork, rand, srand, waitpid, wait4, execv, execve, kill, strerror_r, and strsignal functions. e3638e8, 38b6f58, 995105d, 3f96581, 9015810, a9f95b7, 07793f9.
LLD’s Mach-O linker gained support for emitting “chained fixups”. 0d30e92.
The outline-shape-computation pass was added to MLIR. 9f77909.
The MLIR GPU transform dialect was introduced (initially moving two operations from linalg). 89bb0ca.