[qt/clang/llvm-project]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/clang/llvm-project
Pushed by mirror-service into branch 'upstream/users/steakhal/ssaf/virtual-method-family-closure'.
Changed from 02638f2ed2ad245cb86f544b39b8ae6e9c2f820e to 9544962902522b1ae14a2baa20786022230534a0
Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository.
This change contains the following new commits:
Git commit 69685bb9ce2dc1976b9f4f852caaebdfd98485d1 by GitHub (on behalf of Louis Dionne) on 31/07/2026 at 17:20..
[libc++] Actually partially populate the container in a benchmark (#213146)
The "partially populated" variant of assignment was a copy-paste of the
"into cleared container" assignment.
https://invent.kde.org/qt/clang/llvm-project/-/commit/69685bb9ce2dc1976b9f4f852caaebdfd98485d1
Git commit dac66ca4776b18304249bb3a37f08915e5ad1bf4 by GitHub (on behalf of Louis Dionne) on 31/07/2026 at 17:21..
[libc++] Fix dangling reference in the associative container benchmarks (#213139)
Two insert benchmarks were registered with lambdas capturing insert_iter_iter_bench
by reference, unlike every other registration in this file, which captures by value.
RegisterBenchmark() stores the lambda by value and only invokes it from
RunSpecifiedBenchmarks(), which happens long after associative_container_benchmarks()
has returned, creating a dangling reference.
https://invent.kde.org/qt/clang/llvm-project/-/commit/dac66ca4776b18304249bb3a37f08915e5ad1bf4
Git commit 194d7d819f3ccf15c836323bc0efa34920045c0d by GitHub (on behalf of Timm Baeder) on 31/07/2026 at 17:21..
[llvm] Include ArrayRef.h in GenericCycleInfo.h (#213267)
Try to fix the llvm-x86_64-debian-dylib builder, which has been broken
for a while with:
```
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /usr/bin/clang++ -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/b/1/llvm-x86_64-debian-dylib/build/lib/CodeGen -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/CodeGen -I/b/1/llvm-x86_64-debian-dylib/build/include -I/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -std=c++17 -MD -MT lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o -MF lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o.d -o lib/CodeGen/CMakeFiles/LLVMCodeGen.dir/CodeGenPrepare.cpp.o -c /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/CodeGen/CodeGenPrepare.cpp
In file included from /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/CodeGen/CodeGenPrepare.cpp:53:
In file included from /b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/IR/CycleInfo.h:18:
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/GenericCycleInfo.h:231:33: error: member reference base type 'ArrayRef' is not a structure or union
return ArrayRef(BlockLayout).slice(Cyc.EntryBegin, Cyc.EntrySize);
~~~~~~~~~~~~~~~~~~~~~^~~~~~
```
see e.g.
https://lab.llvm.org/buildbot/#/builders/60/builds/5422/steps/5/logs/stdio
I'm not sure if this will help or not, I can't reproduce this locally
and nobody else seems to have the same problem(?).
https://invent.kde.org/qt/clang/llvm-project/-/commit/194d7d819f3ccf15c836323bc0efa34920045c0d
Git commit 9bc2dd1a7015b58c9c68e8174e5d2756d955c0ca by GitHub (on behalf of Louis Dionne) on 31/07/2026 at 17:21..
[libc++] Add an assertion for monotonic_buffer_resource's initial_size (#213136)
[mem.res.monotonic.buffer.ctor] requires initial_size to be greater than
zero for the two constructors that take one, but we silently accepted
zero. Add a hardening assertion for that precondition.
Fixes #213059
https://invent.kde.org/qt/clang/llvm-project/-/commit/9bc2dd1a7015b58c9c68e8174e5d2756d955c0ca
Git commit c433135c99fc3306ae93fa8cff9e5c00ad0ece3c by GitHub (on behalf of Louis Dionne) on 31/07/2026 at 17:25..
[libc++] Remove unused headers from <cmath> (#213114)
I believe these headers were relevant when we actually implemented
functions in `<cmath>`, but they are not anymore. Note that ::hypot in
particular is obtained from <math.h> like all the other math functions.
Co-authored-by: A. Jiang <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/c433135c99fc3306ae93fa8cff9e5c00ad0ece3c
Git commit 93da16b5edbd9b6b3e66199ec05012be22e3d306 by GitHub (on behalf of Vicky Nguyen) on 31/07/2026 at 17:27..
[CIR][AArch64] Upstream store (vstrq_p128) NEON builtins (#212677)
Related to https://github.com/llvm/llvm-project/issues/185382
CIR lowering for store intrinsics (`vstrq_p128`)
(https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#store)
Port test from `clang/test/CodeGen/AArch64/poly128.c` to
`clang/test/CodeGen/AArch64/neon/store.c`
https://invent.kde.org/qt/clang/llvm-project/-/commit/93da16b5edbd9b6b3e66199ec05012be22e3d306
Git commit 0aa3c9e671fd54083c8c6484fbcfa4c4e36619b6 by GitHub (on behalf of Matt Arsenault) on 31/07/2026 at 17:29..
AMDGPU: Add missing smem-prefetch-insts to gfx12.5/gfx13 feature map (#213297)
fillAMDGCNFeatureMap omitted smem-prefetch-insts for gfx125x and gfx13,
so clang wrongly rejected __builtin_amdgcn_s_prefetch_data / _inst /
s_buffer_prefetch_data.
Co-authored-by: Claude (Claude-Opus-4.8)
https://invent.kde.org/qt/clang/llvm-project/-/commit/0aa3c9e671fd54083c8c6484fbcfa4c4e36619b6
Git commit 4f0fdb36cc99b4920e0431e7047ff3948c8b4278 by Balazs Benics on 31/07/2026 at 17:32..
[SSAF] Extract the virtual method override relation per TU
A virtual call may dispatch to any override of its callee, so a whole-program
analysis cannot reason about a method's parameters and return value in
isolation. It needs to know which method overrides which, and which slots
that relates. Collect this per TU, so a later pass can join the related
slots into families.
JSON serialization lands separately, so the summary is not writable via
--ssaf-extract-summaries yet.
§1 of rdar://179151603
https://invent.kde.org/qt/clang/llvm-project/-/commit/4f0fdb36cc99b4920e0431e7047ff3948c8b4278
Git commit 0d85b0d0354241f3665728e24f90b9c3ceb4b629 by Balazs Benics on 31/07/2026 at 17:32..
[SSAF] Group virtual method slots into override families
A virtual call site can dispatch to any override, so the parameter and return
slots that occupy the same vtable slot across an override chain are
indistinguishable to a caller. Whole-program consumers therefore have to treat
them as one unit or they will reason about a slot that a call never actually
reaches.
Compute those units up front, keyed per slot, so consumers only need a map
lookup rather than their own traversal of the override relation. Overloads
occupy distinct vtable slots and stay in distinct families.
The family representative is the smallest EntityId in the class, which keeps
the result stable across runs.
§2 of rdar://179151603
https://invent.kde.org/qt/clang/llvm-project/-/commit/0d85b0d0354241f3665728e24f90b9c3ceb4b629
Git commit 86659b2ed36104546b6a462cb6e5d2d53a7e0ac3 by Balazs Benics on 31/07/2026 at 17:32..
[SSAF] Serialize virtual method summaries and families
Per-TU summaries and whole-program results cross process boundaries, and the
JSON layer refuses to write a summary kind it has no format for. Register both
sides so --ssaf-extract-summaries=VirtualMethod becomes usable and the family
result survives a round trip.
Deserialization tolerates a missing override list, since a root virtual method
legitimately has none.
§3 of rdar://179151603
https://invent.kde.org/qt/clang/llvm-project/-/commit/86659b2ed36104546b6a462cb6e5d2d53a7e0ac3
Git commit 9544962902522b1ae14a2baa20786022230534a0 by Balazs Benics on 31/07/2026 at 17:32..
[SSAF] Close unsafe-buffer reachability over override families
An unsafe pointer reaching one override's parameter is equally unsafe in every
sibling and base override of that method, because the call site picks the
target dynamically. Without closing over the families, reachability depended
on which override the extractor happened to see the flow through, so a fix
suggested for the base could be contradicted by a derived override.
Mirroring is level-preserving: families relate slot entities, so a reachable
EPL propagates only to the same pointer level on its family members.
The closure runs after the pointer-flow DFS has converged and does not feed
its own output back in, so a flow edge out of a newly discovered EPL is still
missed. FamilyClosureDoesNotRerunDFS pins that gap.
§4 of rdar://179151603
https://invent.kde.org/qt/clang/llvm-project/-/commit/9544962902522b1ae14a2baa20786022230534a0