LLVM Weekly - #434, April 25th 2022

LLVM Weekly - #434, April 25th 2022

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

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

I’ll be talking at the first Cambridge RISC-V meetup this Thursday on “A whirlwind tour of RISC-V LLVM and the open source RISC-V software ecosystem”. Hope to see some of you there!

News and articles from around the web

HPVM v2.0 has been released. HPVM is a retargetable compiler infrastructure for heterogeneous parallel systems that targets CPUs, GPUs, and FPGAs, It uses a target-independent compiler IR that extends the LLVM compiler IR with an explicit, hierarchical dataflow graph representation that captures task, data and (streaming) pipelined parallelism.

Tom Tromey blogged about dramatically speeding up GDB’s DWARF reader.

On the forums

LLVM commits

  • Initial pieces of the SPIRV backend have been committed. 7fd4622, 40114dd, 6c69427, ec25903, eab7d36, 153dee3.

  • The developer policy was updated to document expectations around updating release notes. 009048a.

  • LLVM’s Support library gained an optimisation for (.*) regex matches. This drops the FileCheck time on clang/test/CodeGen/RISCV/rvv-intrinsics/vloxseg_mask.c from 7.3 to 2.7 seconds. 653de14.

  • The CallPrinter passes have been ported to the new pass manager. a7e20a8.

  • getOrInsertLibFunc was introduced, with the goal of ultimately improving the handling of argument extension for ABIs that require it when inserting libcalls. 0f8c626.

  • llvm::processSuffleMasks was introduced and used in the DAG type legalizer. 2cca53c.

  • MC layer support for floating point instructions were added to LoongArch. 3a49ad7.

  • A scheduling model was added for the IBM z16. 9778ec0.

  • The RISC-V SEXT.W removal pass was improved by adding the ability to convert instructions to a ‘W’ variant in order to remove a SEXT.W. 5dd99f7.

Clang commits

  • std::move, std::forward, and a number of other simple functions are now treated as builtins, resulting in improved codegen at -O0. 72315d0.

  • The new OpenMP offloading driver is now the default. ae23be8, 15e62062.

  • -Wmisexpect was added, which will warn when branch weights collected during profiling conflict with those indicated by the programmer (e.g. through __builtin_expect. bac6cd5.

  • Functions with empty parameter lists (“K&R” C functions) are now disallowed in C2x, and a -fno-knr-functions flag was added to opt-in to this behaviour in other C language versions. 9955f14.

Other project commits

  • Support for DWARF5 in monolithic mode (i.e. non-split) was added to BOLT. 014cd37.

  • fread_unlocked, fwrite_unlocked, fflush, and fopencookie implementations were added to LLVM’s libc. 945e022, 22f9dca, 19a6dd3.

  • References to func in MLIR tests were updated to func.func. cda6aa7, and many more.

1 Like