LLVM Weekly - #518, December 4th 2023

LLVM Weekly - #518, December 4th 2023

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

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

Another dozen videos from the LLVM Dev Meeting are now up on YouTube. Lots of great stuff there, e.g. my Igalia colleague Luke Lau’s presentation on vector codegen in the RISC-V backend.

The deadline for the FOSDEM LLVM devroom CfP has been extended to 8th December.

LLVM 17.0.6 was released.

The next LLVM Bay Area Monthly meetup is taking place today(December 4th).

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

  • Office hours with the following hosts: Tobias Grosser, Anastasia Stulova, Quentin Colombet, Johannes Doerfert.
  • Online sync-ups on the following topics: Pointer authentication, MemorySSA, OpenMP, C/C++ language working gropu, Flang, RISC-V, MLIR, HLSL, SPIR-V.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • I haven’t separated out all the relevant commits, but more work towards non-instruction debuginfo has been landing. e.g. 3ef98bc.

  • AArch64’s frame lowering logic was modified to write to the stack at regular enough intervals to ensure the guard page can’t be skipped over (‘stack probing’). cc944f5.

  • The X86 backend can now use PUSHP/POPP and PUSH2[P]/POP2[P] for register spilling and reloading when targeting a machine with the ‘PPX’ extension. cb112eb.

  • The recently added ‘disjoint’ flag for ‘or’ is now set when an ‘add’ is converted to an ‘or’ and can be inferred in some cases. 03d4a9d, 7ec4f60.

  • MC layer support was added for the AArch64 Checked Pointer Arithmetic extension. eef8e1d.

  • Debugify was modified to be usable with the work-in-progress non-instruction debuginfo support. d2d9dc8.

  • Terminator folding was enabled for RISC-V. e947f95.

  • The llvm-reduce documentation gained some example invocations. 792253a.

  • The RISC-V backend’s split regalloc pass structure for RVV is now enabled by default. d0a39e6.

Clang commits

  • #pragma clang fp reciprocal was introduced, allowing control over using reciprocal approximations in floating-point expressions. 0237f1b.

  • Documentation on Clang’s -verify command-line option (used extensively when writing Clang tests) is now in the internals manual rather than in VerifyDiagnosticConsumer.h. 15798f4.

  • The clang-offload-bundler documentation was significantly improved. 3cf1909.

  • Support for mutually exclusive groups was added for YAML-based multilib configurations. As explained in the commit message, this can be used to ensure multiple multilibs aren’t selected at once even if they would otherwise be compatible with the compile-time options. 8727982.

Other project commits

  • libc hash table functions hcreate[_r]/hsearch[_r]/hdestroy[_r] were implemented, using a design inspired by Rust’s hashbrown library. 81e3e7e.

  • Reference counting was disabled for the libcxx classic locale, speeding up parallel stringstream benchmarks significantly. 1a5af34.

  • LLVM’s libc implementation docs were brought up to date. 43f783f.

  • Initial support was added for using picolibc with libcxx. 8aeaceb.

  • The tensor.concat operation was added to MLIR’s tensor dialect. f310a5d.

2 Likes