LLVM Weekly - #560, September 23rd 2024
Welcome to the five hundred and sixtieth 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
LLVM 19.1.0 is now released. Congratulations everyone!
Andrew Kallai wrote on the LLVM blog about their GSoC project, statistical analysis of LLVM IR compilation.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Kristof Beyls, Johannes Doerfert, Amara Emerson.
- Online sync-ups on the following topics: pointer authentication, new contributors, OpenMP, Flang, SPIR-V, RISC-V, LLVM libc, MLIR, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Aaron Ballman proposed Nikita Popov as new lead mantainer of LLVM, with Chis Lattner moving to emeritus lead maintainer for LLVM. The proposal has had resounding support so far.
Haojian Wu started a thread detailing current progress and plans in the area of Clang lifetime analysis improvements.
J Ryan Stinnett started an RFC thread on a new debug info coverage tool for measauring how well local variables are covered by debug info like DWARF. (As a sidenote, I’m not sure how I missed this one. If you see an RFC that’s likely of broad interest that I overlooked, don’t hesitate to drop me a note!). A follow-up post explains how it compares to existing tools.
Utkarsh Saxena proposed introducing
[[clang::lifetime_capture_by(x)]]
to indicate when a function parameter’s reference is capture by another function parameter orthis
.The 70th edition of MLIR News is now available.
David Spickett started an RFC thread on converting LLVM’s release notes to markdown, which also caused some discussion about improving our methodology for assembling the release notes.
Derrick McKee proposed upstreaming of a new compartmentalisation technique that they recently published alongside collaborators recently published.
Aaron Ballman attempted to summarise the [tentative consensus on the RFC to embed sources in BMIs](https://discourse.llvm.org/t/rfc-modules-should-we-embed-sources-to-the-bmi/81029/33.
Aaron Ballman initiated a discussion on deprecating and eventually removing RenderScript support.
LLVM commits
LLVM’s developer policy was updated, replacing “code owners” with “maintainers”. c0719d8.
The
noext
attribute can now be used on call parameters to explicitly indicate that it is neither sign- or zero- extended (i.e. it’s anyext). 1412022.A scheduling model was added for the AArch64 Neoverse N3. e45f9aa.
The InitUndef pass was enabled for non-AMDGPU targets. dfa5429.
Documentation was added on RISC-V GP relaxation and the small data limit option. 76a85b0.
The SLP vectorizer learned to vectorize gathered loads. 1833d41.
A scheduling model was added for the RISC-V Syntacore SCR7. 09fc178.
An initial SPIR-V structurizer was added, which determines the correct merge and continue blocks for SPIR-V. 1ed65fe.
Unrolling was implemented as a VPlan-to-VPlan transform. 8ec4067.
Clang commits
clang-rename was moved, being superseded by clangd. 40c45b6.
The clang pseudo parser was removed as it is incomplete and unmaintained. ed8f788.
Clang now has a UEFI x86_64 toolchain definition. d1335fb.
An
-fmodules-embed-all-files
option was added. f41f6ea.__builtin_common_type
is now provided. f5be5cd.
Other project commits
LLVM’s libc implemented ctime. 000a3f0.
libcxx’s internal
__compressed_pair
structure was replaced with[[no_unique_address]]
, improving compile times and O0 code-gen. 27c8338.lldb-dap’s README was improved. 65c5706.
MLIR’s OpenMP (omp) dialect documentation was improved. 0f86cb3, 8b82fc6, 551134c, 06e8c6a, 79ec1e7, and more.
A vector to XeGPU conversion pass was added to MLIR. 02d34d8.