LLVM Weekly - #474, January 30th 2023

LLVM Weekly - #474, January 30th 2023

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

Welcome to the four hundred and seventy-fourth 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

LLVM 16.x has branched and 16.0.0-rc1 was tagged.

If you’re seeking a new LLVM-related role, see the recent who’s hiring thread.

The EuroLLVM call for proposals is out. The submission deadline is March 3rd.

Adrian Ratiu blogged about Collabora’s work to support building glibc with LLVM.

MaskRay blogged about UndefinedBehaviorSanitizer.

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

  • Office hours with the following hosts: Quentin Colombet, Johannes Doerfert.
  • Online sync-ups on the following topics: MLIR C/C++ frontend, OpenMP, Clang C/C++ language working group, Flang, RISC-V, embedded toolchains working group, HLSL, SPIR-V, MLGO, GPU.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • A Jupyter kernel for llvm-tblgen was committed, alongside a notebook describing how to write a Python backend. 210a383, 232a27b.

  • Best practices for regression tests was documented in the LLVM testing guide. 1d6d1ec.

  • The LLVM language reference now explicitly states that i8 is naturally aligned. 4dbf3f2.

  • llvm-opt-report gained documentation. 4c443eb.

  • Definitions were added for the AArch64 Ampere1A core. fb0af89.

  • atomicrmw {uinc_wrap,udec_wrap} were introduced. 778cf543, 93ec3fa.

  • A tuning flag was added to the X86 backend that enables 256-bit wide AVX load/stores even when -mprefer-vector-width=128 is set. This might be used when targeting cores where AVX instructions might cause a frequency drop. d7043e8.

  • Support was added for custom decoders for variable length instructions, and this was used for 32-bit immediates on M68k. 36c19ea, c40b158.

  • Codegen for 128-bit atomics with the rcpc3 feature on AArch64 was implemented. 7c84f94.

  • MC layer support for the experimental RISC-V Zcb extension was implemented. 42c36da.

  • The “InteractiveModelRunner” was introduced, meant for ML researchers using environments like CompilerGym. 5b8dc7c.

Clang commits

  • The RISC-V vector intrinsics were updated (see the commit message for an overview). 62449823, 224d29e, d94a315, and many more.

  • The Clang interpreter gained initial support for builtin functions and support for floating-point values (and a range of other improvements this week). a7a4463, 62f43c3.

Other project commits

  • LLVM’s libc gained implementations of strcasestr and asinhf. 741021d, 46b15fd.

  • libcxx gained an implementation of std::ranges::split_view. a2b3ab8.

  • Enums for the RISC-V vector definitions were defined in LLDB. 1d7961f.

  • The MemRefToLLVM MLIR pass was renamed to FinalizeMemRefToLLVM. cb4ccd3.