LLVM Weekly - #456, September 26th 2022

LLVM Weekly - #456, September 26th 2022

If you prefer, you can read a HTML version of this email at http://llvmweekly.org/issue/456.

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

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 and REDEFINE 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.