LLVM Weekly - #429, March 21st 2022

LLVM Weekly - #429, March 21st 2022

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

Welcome to the four hundred and twenty-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.

I’m delighted to share that I’ve joined Igalia’s compilers team. Established 20 years ago, Igalia are a worker-owned cooperative employing over 100 developers who make huge contributions to a wide range of upstream open source projects. I couldn’t be more excited to be part of it! You can now expect to see me cropping up on lib/Target/WebAssembly in addition to the usual lib/Target/RISCV.

News and articles from around the web

Sudara blogged about how to create LLDB type summaries and synthetic children for your custom types.

On the forums

LLVM commits

  • Whole program devirtualisation’s checking mode was extended to support fallback to indirect call. fee0bde.

  • Calls to __divei4 and related builtins will now be emitted for division/remainder of large integers. 09854f2.

  • Opaque pointers are now automatically detected in .ll files, meaning it’s not necessary to specify -opaque-pointers when updating IR tests from typed pointers to opque pointers. 295172e.

  • The RISC-V backend gained support for the experimental Zvfh extension to support half types in vectors. bbd2ecf.

  • More details were added to the MemorySSA docs 187a5f2.

  • A new TableGen backend was added that generates X86 mnemonic-based opcode groupings. fdcb256.

  • A CMake flag was added to turn llvm_unreachable into builtin_trap when assertions are disabled. 7b98391.

  • The Arm backend’s use of atomic expansion routines was fixed to use libatomic APIs on platforms where __sync_* routines aren’t known to exist. 2f497ec.

Clang commits

  • ext_vector_type can now be applied to booleans, allowing vectors of bools, which are intended to be used for vector mask registers. 0aab344.

  • The ‘tune-cpu’ IR attribute is now set with the precise name of the X86 processor being targeted. dc15265.

  • Literal suffices for _BitInt were introduced. 8cba721.

  • The pseudoparser was moved from clang to clang-tools-extra. b97856c.

  • Multiple attributes can now be specified in #pragma clang attribute push. 33a9eac.

Other project commits

  • End-to-end codegen tests were added for wasm_simd128.h. 7062094.

  • Many patches for lowering of additional constructs and intrinsics were landed in Flang. 67b23fe, 308fc3f, and much more.

  • LLVM’s libc gained an implementation of lseek. 827575a.

  • Instructions were added for building LLDB with Intel Processor Trace support. 752e9cd.

  • Detailed documentation was added for the PDL Language (PDL), a custom frontend language for writing pattern rewrites targeting MLIR. 943ad66.

  • An initial language server was added for PDLL. 52b34df.

  • The MLIR bufferization documentation was updated. 975284a.