LLVM Weekly - #561, September 30th 2024
Welcome to the five hundred and sixty-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
Joseph Huber has a rather neat port of Doom that runs on AMDGPU with ROCm and LLVM’s libc.
James Hamilton provided a high level introduction to LLVM.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Renato Golin, Anastasia Stulova, Quentin Colombet, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, libc++, LLVM/Offload, Clang C/C++ language working group, OpenMP for Flang, MLIR, HLSL, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Chris Bieneman provided an update on efforts to establish a new LLVM project governance model, noting the hope to conduct the first elections in January 2025 if the proposal is adopted.
Erich Keane posted an RFC on updating the supported host compiler versions for LLVM 20. A large chunk of the ensuing discussion was about the expectations for whether builds should be
-Werror
-clean on all supported toolchains or not (they’re not today), though it was agreed this discussion belongs in a separate RFC.Nikita Popov suggested improvements to capture tracking in LLVM.
Anton Korobeynikov provided a detailed update on pointer authentication support as of the LLVM 19 release as well as listing work that is still in progress.
David Blaikie proposed a tweak to LLVM’s header including policy. Some respondents were keen to ensure the policy isn’t interpreted in a way that suggests running include-what-you-use is required.
Rahul Joshi proposed support for
auto
in TableGen and also shared recent improvements to formatting/printing helpers in LLVM.Kadir Çetinkaya provided a revised RFC proposal for adding support for controlling Clang diagnostic severities at the file level.
Nikita Popov started an RFC thread on introducing a
samesign
flag foricmp
for use in cases where the two compared values are known to have the same sign and soult
will have the same result asslt
.Andrew Savonichev shared a draft implementation plan for a DWARF reduction tool.
Donald Chen shared a PSA about the semantics of program points in MLIR dataflow analysis changing.
Neil Henning kicked off a discussion around adding the ability to make asserts runtime togglable.
LLVM commits
LLVM’s release notes are now in Markdown rather than RST. b9f09a4.
WebAssembly’s AsmTypeCheck can now detect multiple errors in a single function. b62075e.
A new
update_mc_test_checks.py
utility was added, to update test files using llvm-mc. 2b892b0.The computed properties IsSSA, NoPHIs, and NoVRegs can now be overridden in MIR input. 8ba334b.
An
llvm.atan2.*
intrinsic was added. 26029d7.The Zacas RISC-V extension is no longer marked as experimental. 614aeda.
ConstantFPRange was added in order to in the future enable range-based optimisations for floating point values. fa824dc.
The SLP vectorizer learned to do “clustered” vectorization for instructions other than loads. 3469db8.
The DirectX target gained a pass to scalarize vectors in global scope into arrays. 324bdd6.
Clang commits
clang-tidy’s documentation gained a section to list examples of external projects using the tool. ce9a2c6.
The static analyzer taint propagation checker is no longer marked as alpha. f82fb06.
SPIRV memory scopes support was reworked and expanded. 3cfd0c0.
The
-basic-block-sections=labels
option was deprecated. 7b7747d.Command-line options were introduced for RISC-V CFI. 9f33eb8.
TestLanguage.def can now be used to specify all tested language versions. 7dfdca1.
Other project commits
An ABI option was added to libcxx to harden
operator[]
forunique_ptr<T[]>
when the size of the allocation is known. 45a09d1.MLIR gained support for LLVM operand bundles. fde3c16.
Documentation on adding support for a new language was added back to LLDB. a3cf01d.
Errors from LLDB’s inline expression evaluator are now much prettier. d33fa70.