LLVM Weekly - #449, August 8th 2022

LLVM Weekly - #449, August 8th 2022

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

Welcome to the four hundred and forty-ninth 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

As a reminder, the LLVM Bay Area meetup is today, August 8th.

The next Cambridge UK LLVM social will take place on 6th September 2022. Anastasia Stulova will present “SPIR-V support in Clang/LLVM”.

The next Berlin LLVM meetup will take place on 24th August. Alex Denisov will give an intro to MLIR.

The video from the June Women in Compilers and Tools meetup is now available. Angélica Moreira presents on static profiling.

An in-person MLIR Bay Area Development summit is planned for October 5th.

The call for papers for this year’s LLVM in HPC workshop at SC22 remains open until August 19th.

JeanHeyd Meneide wrote up a summary of agreed new features in C23.

On the forums

LLVM commits

  • C++17 features can now be used within the LLVM codebase, and the base toolchain requirements have been raised to reflect this. b135650.

  • The RISC-V backend gained a pseudo instruction pass that runs prior to register allocator, offering more opportunities for optimisation. 260a641, 0bc177b.

  • An @llvm.threadlocal.address intrinsic was introduced. 9701053.

  • LLVM’s CMake build system was updated to make LoongArch builds of LLVM possible. e48a0df, 313ce72.

  • TableGen is now used to create SPIRVBaseInfo*. b25b507.

  • A new constructor was added to allow creating a SmallVector<T> from an ArrayRef of items convertible to type T. 1bd31a6.

Clang commits

  • Support was added for a C++20 feature allowing capturing structured bindings in lambdas. 127bf44.

  • Support was added for RISC-V Vector policy functions. 71fd661, 7542e72, and more.

  • The __bf16 type is now enabled for all AArch64 targets. 8c30f4a.

Other project commits

  • A number of ranges features were implemented. ranges::remove_copy{,_if}, ranges::replace_copy{,if}, ranges::sample, ranges::{prev,next}_permutation, ranges::rotate, ranges::clamp, ranges::is_permutation. 760d2b4, 93172c1. 6bdb642, 68264b6, 36c746c. a203acb. 4038c85.

  • The type field was removed from MLIR attributes. e179532.

  • The libc website look and feel was updated. f493b21.

  • LLVM’s libc gained implementations of tanhf, pthread_setname_np, and pthread_getname_np. 5ef987c, 658c84e.

  • Basic RISC-V register enum definitions were added for LLDB. 768e59d.