LLVM Weekly - #456, September 26th 2022
Welcome to the four hundred and fifty-sixth 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
LLVM 15.0.1 was released.
I blogged about what’s new for RISC-V in LLVM 15.
Neil Henning blogged about changes in LLVM 15 compile time for the Burst compiler. It shows LLVM 15 is slower to compile the 2.5 million lines of IR used in the benchmark than LLVM 14 and LLVM 13.
Volodymyr Sapsai wrote a blog post on the effect of Clang modules on compilation time, using LLVM+Clang itself as a benchmark.
On the forums
Iryna Shakhova posted an RFC on supporting debugging child processes in LLDB.
James Player proposed extending LLVM’s ranges infrastructure to better match C++20.
Sean Silva shared meeting notes and slides from the recent TorchDynamo developer hour.
Roman Lebedev asks if anyone is interested in collaborating an image-processing language taking inspiration from Halide (and elaborates on the desired feature set).
Sean Silva kicked off a discussion about how to handle ‘gigantic’ weights in MLIR.
Bill Wendling asks about better aligning Clang/LLVM’s asm goto with GCC’s approach, and received positive feedback so far.
LLVM commits
Patches have started to land to remove
-enable-new-pm=0
flags from lit tests. 99c9b37.Support was added for the experimental Zawrs (wait on reservation set) extension on RISC-V. eda2af5.
Support for the unratified Zbt, Zbp, Zbe, Zbf, and Zbm extensions were removed from the RISC-V backend, as upstream work on the specification seems to have ceased. 70a64fe, 182aa0c, 52708be.
Lit now features
DEFINE
andREDEFINE
directives. 28412d1.Unicode support in LLVM’s Support library was updated to the Unicode 15.0 spec. c932cef.
-dot-machine-cfg
was added to print a MachineFunction to a dot file for visualisation as a graph. 32a8260.Profile matching and IR annotation for memprof profiles was implemented. b1926f3.
Support for various inline asm constraints was added to the LoongArch backend. 394f309.
A new
useDeprecatedPositionallyEncodedOperands
option was added to TableGen and enabled for in-tree backends that require it. See the commit description for information on how to migrate. 5351878.
Clang commits
A clang-bolt target was added in order to build Clang with BOLT optimisations applied. 3dab7fe.
The
--gcc-install-dir=
option was added, intended to replace--gcc-toolchain
. 23e4299.LoongArch ABI lowering was implemented in Clang. 7d88a05.
Clang now supports multiple configuration files. 8a774c3.
Other project commits
LLVM’s libc gained implementations of strerror, fputs, puts, stat, fstat, lstat, getpid, getppid, getuid, geteuid, mprotect, madvise, posix_madvise, and nanosleep. 42bcb35, a9e0dbe, e310f8b, 4f1474d, 47b7240, 85c70da, 8f1e362.
libcxx’s
graph_header_deps.py
script was rewritten to use clang’s--trace-includes
. ddb6c2b.The remaining code for LLDB reproducers was removed. 70599d7.