LLVM Weekly - #523, January 8th 2024

LLVM Weekly - #523, January 8th 2024

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

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

Thank you everyone for your kind messages regarding last week’s 10 years of LLVM Weekly milestone, especially my lovely colleagues at Igalia for sending this LLVM-themed cake.

News and articles from around the web and events

The call for proposals for EuroLLVM 2024 is now open and closes on Feb 4th (the conference will take place in Vienna April 10th-11th). Student travel grant applications are also open.

Nikita Popov blogged about their contributions to LLVM over the past year. Thank you Nikita for all of your contributions, especially the absolutely astounding number of reviews.

Geoff Wozniak blogged about GCC spec files.

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

  • Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Kristof Beyls, Johannes Doerfert.
  • Online sync-ups on the following topics: Flang, alias analysis, pointer authentication, AArc64, OpenMP, clasic flang, C/C++ language working group, loop optimisations, OpenMP in Flang, MLIR, PowerPC, SPIR-V, LLVM/offload.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • The disjoint flag is now plumbed through from IR to the SelectionDAG. bbd57e1, 47a1704, bdcd7c0.

  • A spv_ptrcast intrinsic was introduced and used for SPIR-V in order to track expected pointer types, fixing issues that occurred after the switch to opaque pointers. b4cfb50c6.

  • GlobalISel gained support for out-of-line-atomics. ce61b0e.

  • llvm-cxxfilt learned the --no-params argument which skips demangling function parameters. 569ec18.

  • test-release.sh can now build with a specific CMake cache file, e.g. a 3-stage release build. 3096353.

  • MC layer support for additional Intel APX (extended GPRs) instructions was added. 4daea50.

  • AArch64’s GlobalISel can now tail call libcalls. d659bd1.

  • A new TableGen backend was added to generate MacroFusion predicates. a0e6b7c.

Clang commits

  • The castToDeclContext function was optimised, improving build times by 2%. 901a816.

  • The frontend components of support for modified condition/decision coverage (MC/DC) were added. 8b2bdfb.

  • -Wunsafe-buffer-usage will now warn for unsafe invocation of span::data. 7122f55.

  • The [[clang::coro_disable_lifetimebound]] attribute is now supported, allowing coroutine lifetime bound analysis to be disabled for a function. 190a75b.

  • A new clang-tidy check ‘readability-avoid-return-with-void-value’ was added. a89141f.

Other project commits

  • LLVM’s libc startup library was refactored. 2bc9944.

  • span.at() was implemented in libcxx. a72ab9c.

  • LLDB now supports inline DWARF source files. 917b404.

  • Documentation was improved for MLIR’s gpu-lower-to-nvvm-pipeline. ace69e6.