LLVM Weekly - #551, July 22nd 2024

LLVM Weekly - #551, July 22nd 2024

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

Welcome to the five hundred and fifty-first 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, @llvmweekly or @asbradbury on Twitter, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.

News and articles from around the web and events

Luke Lau blogged about changes to how the RISC-V LLVM backend inserts vsetvli (vector configuration) instructions, focusing particularly on how to break up such a potentially disruptive change into incrementally reviewable patches.

Fangrui Song blogged about rethinking mapping symbols for efficiency.

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

  • Office hours with the following hosts: Johannes Doerfert, Amara Emerson.
  • Online sync-ups on the following topics: Flang, pointer authentication, new contributors, LLVM/Offload, classic Flang, loop optimisations, OpenMP for Flang, MLIR.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • llvm.memcpy.inline no longer requires a constant length. 522fd53.

  • 3DNow intrinsics and builtin support was removed. f0eb558.

  • A dxil::ResourceInfo utility was added to generate resource metadata and annotations for DXIL and documentation was added for resource handling. 48f55ba, 9be5f4f.

  • Hooks were added to prefer fixed over scalable vectorisation on AArch64 if the cost model calculates equal cost for them. c5329c8.

  • An llvm.experimental.vector.compress intrinsic was added. 177ce19.

  • More work on SandboxIR was committed. 5338bd3, c5432d3.

  • APFloat learned to handle the “f8E4M3” floating point type. f363317.

  • Three-way integer comparison instructions were added to GlobalISel. 1cc1072.

  • Codegen support was added for the Arm64EC hybrid_patchable attribute. 6cc8774.

Clang commits

  • A deprecation warning is now emitted for -Ofast. 2ef7cbf.

  • Clang’s lifetime analysis was extended to support assignments for pointer-like objects. 3eba28d.

  • The source file name for template instantiations is now shown in -ftime-trace. cd495d2.

  • Function pointer re-signing was implemented for PAC. f6b06b4.

  • API notes can now be used to add Clang attributes to C++ methods. 8a79dc7.

  • clangd gained initial support for C++20 modules. fe6c240.

Other project commits

  • An implementation of __init_riscv_feature_bits was added to compiler-rt. a41a4ac.

  • Basic -mtune supported was introduced to flang. f1d3fe7.

  • fp16 support in libclc was improved. 7e6a739.

  • LLDB now has a frame recogniser for __builtin_verbose_trap which can display the failure-reason string. 8a27ef6.

  • Initial vector type legalisation for function signatures was added to MLIR for SPIRV. 6867e49.

In a major oversight on my part, I completely failed to mention the virtual GSoC mini conference tomorrow GSoC 2024 Midterm Conference - be sure to check it out if you’re interested in hearing about the progress of the LLVM project GSoC participants.