LLVM Weekly - #546, June 17th 2024

LLVM Weekly - #546, June 17th 2024

If you prefer, you can read the canonical version of this issue at http://llvmweekly.org/issue/546.

Welcome to the five hundred and forty-sixth 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 [email protected], @llvmweekly or @asbradbury on Twitter, or @[email protected] or @[email protected].

News and articles from around the web and events

The next Cambridge compiler social will take place on June 19th and will fature a talk “Hyperblock Scheduling for Verified High-Level Synthesis” by Yann Herklotz.

The forms to volunteer for the LLVM US Dev meeting program committee, travel grant committee, or to propose a co-located workshop will close on June 21st.

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

  • Office hours with the following hosts: Phoebe Wang, Johannes Doerfert, Aaron Ballman.
  • Online sync-ups on the following topics: pointer authentication, SPIR-V, vectorizer, security group, new contributors, OpenMP, Flang, floating point, RISC-V, MLIR, embedded toolchains.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • LLVM has switched to using debug records internally by default, the migration doc on the removal of debug intrinsics was updated, and IR is printed with debug records by default. dc726c3, e19199b, 0945727.

  • DynamicAPInt was introduced (moved from mlir’s MPInt), providing an arbitrary precision integer library that unlike APInt doesn’t require a fixed maximum size. 76030dc.

  • APFloat support for FP6 and FP4 data types was added. b1fe03f, 880d370.

  • BranchWeightMetadata was extended to track the provenance of weights. 294f3ce.

  • All LLVM docs were updated to use debug records rather than debug intrinsics. 400d4fd.

  • Modulo variable expansion was implemented, with support initially present for AArch64. 0c5319e.

  • Support was added for the RISC-V indirect CSR access extensions. 2fe7238.

  • Basic definitions were added for the Cortex-A725 and Cortex-X925. e80c595.

  • The move from Chromium’s security tracker to GitHub for security issue reporting was documented. a6c1152.

  • A window scheduling algorithm for the machinepipeliner was implemented. b6bf402.

  • llvm-profgen gained support for Linux kernel perf files. 2fa6eaf.

Clang commits

  • The emitted IR for array initialisation was simplified. 12d24e0.

  • sizeof(pointer) handling in bugprone-sizeof-expression was improved. 546c816.

Other project commits

  • As part of work on a freelist allocator, a Block class abstraction and freelist class was added to LLVM’s libc. 85c78d4, 1737814, 3bcd80a.

  • pthread_rwlock and fdopen were implemented in LLVM’s libc. 41fecca, 0b24b47.

  • LLD’s build-id now defaults to a 20-byte SHA1 digest. 1d96e4b.

  • Basic TLSDESC support for LoongArch was implemented in LLD. c4a1440.

  • MLIR’s arith dialect integer range optimisations pass was improved. 4722911.

  • MLIR no longer merges blocks during canonicalisation by default. a506279.