LLVM Weekly - #512, October 23rd 2023

LLVM Weekly - #512, October 23rd 2023

If you prefer, you can read a HTML version of this email at http://llvmweekly.org/issue/512.

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

Nikita Popov has written up a fantastic guide on how to ‘reduce’ LLVM crashes to minimal test cases.

JeanHeyd Meneide blogged about implementing #embed support for C and C++, covering proposed implementations in both GCC and Clang.

Daniel Kleinstein wrote up a guide on tracing memory access with an LLVM pass.

Linaro have documented work underway to track code size variations between LLVM releases.

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

  • Office hours with the following hosts: Kristof Beyls, Amara Emerson, Johannes Doerfert
  • Online sync-ups on the following topics: MLIR C/C++ frontend, pointer authentication, OpenMP, RISC-V, LLVM libc, MLIR, SPIR-V.
  • For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.

On the forums

LLVM commits

  • The new optdebug function attribute can be used to specify that optimisations should prioritise debug info quality. df3478e.

  • A new tablegen keyword dump was introduced, used for printing a message to stderr for debugging purposes. db9b6f4.

  • Support was added for the new X86 USER_MSR instructions. 819ac45.

  • The FoldImmediate hook was implemented for X86. 760e7d0.

  • LLVM_GTEST_RUN_UNDER can now be set to define a wrapper program that LLVM unit tests should be run under, and sharding can be disabled. dd64c82, 6eee238, 44d4b30.

  • It’s now possible to set linker flags for different targets within LLVM (e.g. it might not be worth optimising with LTO for helper programs like llvm-dwarfdump). e90ec58.

  • evaluateBranch was implemented for auipc/jalr pairs on RISC-V, meaning llvm-objdump prints the target in these cases. 95f924f.

Clang commits

  • A new builtin __builtin_vector_elements() was introduced which gives the number of elements for a given vector, either at compile-time or via a runtime call in the case of scalable vectors like in SVE or RISC-V. de65b6b.

  • Use of SSE4.2 in Clang’s lexer provides ~1.5% faster preprocessor time for the sqlite3 amalgamation. 9f0f606.

  • The unix.StdCLibraryFunctions checker is no longer ‘alpha’. c202a17.

  • The C23 stdcdkint.h header is now provided by Clang, providing macros for checked integer arithmetic. 3694697.

  • Clang now warns about uses of variable-length arrays in C++ by default. 84a3aad.

  • New clang-tidy checks were added to diagnose “coroutine-hostile” RAII objects and bugprone casting through void. 3151281, 9a5c6f1.

Other project commits

  • libc++ testing was added for Android. d173ce4, a30095a

  • lldb-vscode was renamed to lldb-dap. 01263c6.

  • A range of int to FP conversion builtins were refactored to use a common implementation, rather than copy and paste. 6dfea56, 69660cc.

  • Documentation was added for AArch64 Scalable Vector Extension and Scalable Matrix Extension on LLDB. bb82695.

1 Like