LLVM Weekly - #501, August 7th 2023

LLVM Weekly - #501, August 7th 2023

Welcome to the five hundred and 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

Registration is now open for the 2023 US LLVM Developers’ Meeting.

Bryce Pauken blogged about removing randomness with LLDB.

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

  • Office hours with the following hosts: Tobias Grosser, Alina Sbirlea, Kristof Beyls, BOLT maintainers, Johannes Doerfert.
  • Online sync-ups on the following topics: Flang, MemorySSA, OpenMP, classic Flang, loop optimisation working group, OpenMP for Flang, MLIR open meeting, SPIR-V.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • InstCombine now only performs a single iteration, resulting in a 4% compile-time improvement for negligible codegen impact (the commit message gives statistics on how rare it is that additional iterations are needed). 4189584.

  • The performance of the SymbolSize computation was improved, improving the performance of llvm-symbolizer substantially. The commit message notes that symbolizing a Release+Asserts Clang build with DebugInfo goes from 3m40s to less than 1s. 14e0a67.

  • The first Tablegen Jupyter tutorial notebook was added. 5850124.

  • G_INTRINSIC_CONVERGENT and G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS were introduced to GlobalISel. d9847cd.

  • The minimum version of GCC needed to build LLVM is now documented as 7.4. 1e06b82.

  • Performance of llvm-gsymutil was improved by up to 200%. 1d9c7c4.

  • Codegen was implemented for intrinsics for the RISC-V vector crypto extension. 346c1f2.

  • SelectionDAG now supports targets with more than 256 predicates. a3a7e76.

Clang commits

  • Structs, unions, and arrays that are const may now be used as constant expressions in C. This makes Clang more consistent with GCC. 610ec95.

  • An elementwise bitreverse builtin was introduced. 57f879c.

  • clang’s -extract-api gained support for C++ classes, fields, and methods. 75f55eb.

  • The C++ proposal P2169 that allows _ to be used as a placeholder variable name multiple times in the same scope. a8bef88.

  • A number of additional floating point related builtins are now supported by the Clang interpreter. 6ba4b21, 5821351, 1684406, and more.

  • The modernize-use-constraints and bugprone-optional-value-conversion clang-tidy checks were added. 893d53d, 575900d.

Other project commits

  • LLVM’s libc gained support for compiling some syscalls for 32-bit platforms. c9783d2.

  • libcxx’s ranges::find for vector<bool> was optimised. 8670b53.

  • LLD learned to synthesise metadata for AArch64 Memory Tagging Extension (MTE) globals. ca35a19.

  • The lldb-vscode tool gained support for the ‘disassemble’ request. ca71dc1.

  • A TableGen backend was added to generate Python binding classes for MLIR enums. 1f8618f.

This should link to rGf5974e80653d instead.

1 Like