LLVM Weekly - #482, March 27th 2023

LLVM Weekly - #482, March 27th 2023

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

Welcome to the four hundred and eighty-second 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

The program for the 2023 EuroLLVM Developers’ Meeting is now available. Early bird registration ends on April 10th.

A video from the February LLVM Toronto meetup is now up on YouTube, featuring Whitney Tsang presenting on GSoC. Also on the topic of GSoC, be sure to check out Stefan Gränitz’s overview of a selection of suggested LLVM GSoC projects.

Xilinx released nanotube as open source, a compiler that takes EBPF XDP C code as input and (via LLVM IR) outputs a packet processing pipeline in HLS C++.

The March LLVM Bay Area meetup will take place today, March 27th. Later in the week (on March 29th) an LLVM social will take place in Darmstadt.

According to the LLVM calendar (note: Europe followed the US into daylight savings time over the weekend, so meeting times are hopefully back to usual for most people) in the coming week there will be:

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

On the forums

LLVM commits

  • An AArch32 backend was added for JITLink. 5c1d160.

  • MC layer support was added for the experimental RISC-V vector crypto extension. 9795aa0.

  • llvm::range_size was introduced for generic ranges. 2981832.

  • The RISC-V backend now uses LBU for extloadi8 (i.e. anyext), as the Zcb extension has a compressed form of LBU. 8e43c22.

  • As part of the memory profiler work, a context disambiguation cloning pass was added. 700cd99.

  • The vectorizer now defaults to LMUL=2 for RISC-V. This was found to have minimal impact on spills but should increase throughput and allow more interleaving. 8d16c68.

  • MC layer support was added for RV64E. c39dd7c.

  • A new InstCombine was added targeted at the IR generated by std::bit_ceil. 231fa27.

  • I’d missed this previously, but a series of patches to move AMDGPU to using UniformityAnalysis instead of DivergenceAnalysis has now completed. 1f1fea6.

  • Support for the memorably named E4M3B11FNUZ floating point format was added to APFloat. 2f086f2.

Clang commits

  • The Clang driver for the OpenHarmony OS target was committed. 28997fe.

  • The status for coroutine support was updated to note C++20 coroutines are fully supported on all targets except Windows. 8894fe7.

  • Documentation was added on Windows SDK search. 893ce57.

  • #pragma clang __debug dump now supports expressions rather than just an identifier. 467ed27.

  • The readability-avoid-unconditional-preprocessor-if clang-tidy check was introduced. 52296f5.

Other project commits

  • Flang will now write out MLIR when -save-temps is used. 33be834.

  • Wide char functions were added to LLVM’s libc. 46b5087.

  • setjmp and longjmp were implemented for RISC-V in LLVM’s libc. 0f6fd1b.