LLVM Weekly - #465, November 28th 2022

LLVM Weekly - #465, November 28th 2022

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

Welcome to the four hundred and sixty-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 and events

Stefan Gränitz wrote a blog post about troubleshooting the LLDB implementation of the GDB JIT interface.

Shafik Yaghmour blogged about exploring Clang’s enum implementation and how we catch undefined behaviour.

According to the LLVM calendar in the coming week there will be:

  • Office hours with the following hosts: Johannes Doerfert.
  • Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, pointer authentication, OpenMP, loop optimisations, OpenMP in Flang, HLSL, SPIR-V, MLGO, and the GPU working group.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • GlobalISel for PPC gained support for some basic logic instructions, arithmetic, and floating point instructions. be4a1df, 2b1e895, d9143ce.

  • The deprecated llvm::array_lengthof method was removed. 35df882.

  • Codegen and MC support was committed for the experimental RISC-V Zca, Zcf, and Zcd extensions. 219417b, 16bf359, 0dbc52a.

  • Support was added to AArch64 for the 2022 general data-processing instructions as well as the v8.9-A/v9.4-A debug and PMU extensions. cb261e3, b0d4045.

  • Generic operand bundle lowering was implemented for KCFI (Kernel Control Flow Integrity). cacd3e7.

  • Register allocation hints are now used in the RISC-V backend in order to improve the use of compressed instructions. a2b5b58.

  • Many, many patches were landed to convert uses of LLVM’s Optional class to std::optional. e.g. edace86, b54cd3f.

Clang commits

  • clangd --check can now be used to time clang-tidy checks. fd733a6.

  • The Clang user manual now consistently uses Sphinx’s .option directive. 799b6b9.

  • Clang’s dataflow analysis gained a widening API. 84dd12b.

  • Zstd is now supported in .pcm files. fa7bc38.

Other project commits

  • LoongArch register definitions and operations were added to LLDB. ed34590.

  • The libc++ AppleClang requirement was bumped to 14. 396fbe2.

  • ASan gained an initial patch that is part of a series to improve C++ container overflow detection. 1c5ad6d.

  • MLIR gained a vectorisation pass for sparse loops. 99b3849.