LLVM Weekly - #525, January 22nd 2024

LLVM Weekly - #525, January 22nd 2024

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

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

As a reminder, the call for proposals for EuroLLVM 2024 is open until February 4th.

The next LLVM meetup in Munich is taking place on January 29th, and the next Darmstadt meetup is on January 31st featuring a talk from Kai Plociennik on an OpenMP Offloading compiler for the STX accelerator.

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

  • Office hours with the following hosts: Kristof Beyls, Johannes Doerfert.
  • Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, pointer authentication, SYCL, libc++, OpenMP, classic Flang, C/C++ language working group, loop optimisations, OpenMP in flang, MLIR open meeting, 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

  • Numbered temporaries in LLVM IR (e.g. %2 = add i32 %1, 4) are no longer required to be consecutive, though must still be increasing within a function. 6f37114.

  • Basic definitions were added for the Apple XROS platform. 7d3466b, 735adbf.

  • Codegen support was committed for RISC-V RVE (16 registers rather than 32 registers) and the ilp32e and lp64e ABIs. 3ac9fe6.

  • Native CPU detection was added for the Microsoft Azure Cobalt 100. a690e86.

  • A scheduler model was added for the SiFive P450. 847c787.

  • MC layer definitions for new additions in the LoongArch v1.1 instruction set were committed. 84bdee2.

  • Almost all AMDGPU llc tests were moved to using -mtriple rather than -march. 9e9907f.

  • GlobalMerge was ported to the new pass manager. bd9e145.

  • Corpus extraction tooling was upstreamed to the MLGO (machine learning guided optimisation) project. a387bce.

Clang commits

  • Clang is no longer so apologetic in its error messages. 24c89bb.

  • New clang-tidy checks where added: readability-avoid-nested-conditional-operator, readability-redundant-casting, and readability-redundant-inline-specifier. 8e21557, 1ad1f98, 7a8f5d9.

  • Documentation was committed for -fbounds-safety. dda2ce8.

  • The libclang Python bindings now longer support Python 2 and now requires Python 3.6. 75f2321.

  • Apple XROS is now recognised in the Clang frontend and driver. a4fe6a1.

  • A SkipMacroDefinitionBody option was added to clang-format. a7d7da6.

Other project commits

  • LLVM’s libc now uses Clang’s scoped atomics if available. a9ca820.

  • In production hardening modes, libcxx will now trap rather than abort. 58780b8.

  • LLD will now produce an error if it encounters an R_RISCV_ALIGN relocation that it can’t satisfy. 987123e.

  • LLDB gained support or the XROS/AppleXR platform. 3b6a8f8.

  • Overflow flags are now supported in MLIR’s arith dialect. 8934b10.