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
I don’t normally feature job listings in LLVM Weekly, but will note Tanya Lattner is advertising a Program Director position at the LLVM Foundation. Do pass on to anyone you think might be a good fit. In general, see the job postings Discourse category for people advertising LLVM-related opportunities.
MLIR News #52 is out.
Michael Adams shared a new iteration of their slides on learning Clang libraries.
Kerry McLaughlin initiated a discussion about adding target-specific loop idiom recognition for AArch64.
Alex Voicu provided a detailed description of stdpar as a Clang extension and further clarifications of the proposal.
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). f5974e8.
The performance of the SymbolSize computation was improved, improving the performance of
llvm-symbolizer
substantially. The commit message notes that symbolizing a Relase+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
andG_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
forvector<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.