[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 9544962902522b1ae14a2baa20786022230534a0 to e732ce41a9f04f49ed9e8f8fd0bba13f13582a3f
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 b6746a33af2b6e7daf29104bef4bd5491bcfb1f6 by GitHub (on behalf of richardmilles) on 07/08/2026 at 11:18..
[clang-tidy][docs] Normalize fuchsia check documentation links (#214697)

Use stable fuchsia.dev URLs without `?hl=en` and add the missing
reference on `fuchsia-temporary-objects`.

Fixes #62334
https://invent.kde.org/qt/clang/llvm-project/-/commit/b6746a33af2b6e7daf29104bef4bd5491bcfb1f6

Git commit bc495da845041056e9a5892816d7fc214e371716 by GitHub (on behalf of Chennes) on 07/08/2026 at 11:18..
[SelectionDAG] Fold constant PARTIAL_REDUCE_SMLA/UMLA/SUMLA nodes (#210351)

This PR implements constant folding for `ISD::PARTIAL_REDUCE_SMLA`,
`ISD::PARTIAL_REDUCE_UMLA`, and `ISD::PARTIAL_REDUCE_SUMLA` when their
operands are constant `BUILD_VECTOR`s. The fold computes the partial
reduction using `APInt` arithmetic and returns a folded `BUILD_VECTOR`.

Input constants are truncated to their logical element width before
being sign- or zero-extended as required by each opcode. Input lane `I`
is accumulated into result lane `I % NumAccElts`, matching
`TargetLowering::expandPartialReduceMLA`. The reduction order is
deliberately unspecified, so this mapping is a valid refinement.

Poison is propagated only to the affected result lanes. Folding is
skipped for undef and opaque constants. Unsupported operand forms return
early because partial-reduce nodes have no scalar form and must not fall
through to generic per-element folding. After type legalization, when
the accumulator element type is not a legal scalar type, the folded
constants are created in the promoted legal type (matching the generic
per-lane folding path), and the fold bails out if legalization would
narrow the element type.

The RISC-V test precommits the existing codegen for the basic constant
fold. Additional IR tests cover accumulator-width wraparound, poison in
the input and accumulator, and safe handling of scalable splats. Direct
SelectionDAG unit tests are retained only for node forms that cannot be
reliably or acceptably tested through IR: the SMLA/UMLA/SUMLA signedness
matrix with promoted narrow inputs, promotion of the folded result to a
legal scalar type after type legalization, poison in the implicit
multiplier operand, undef and opaque elements, and partially constant
no-fold cases.

Fixes #209191
https://invent.kde.org/qt/clang/llvm-project/-/commit/bc495da845041056e9a5892816d7fc214e371716

Git commit 14f8ac90350a8a1c5238beb24e4e6286d560a250 by GitHub (on behalf of Baranov Victor) on 07/08/2026 at 11:28..
[clang-tidy][NFC] Apply readability-redundant-nested-if 1/N (#213939)
https://invent.kde.org/qt/clang/llvm-project/-/commit/14f8ac90350a8a1c5238beb24e4e6286d560a250

Git commit b23965baa8044edd310c6262900c6a2e3f2fd6bb by GitHub (on behalf of Baranov Victor) on 07/08/2026 at 11:29..
[clang-tidy][NFC] Apply readability-redundant-nested-if 2/N (#213959)
https://invent.kde.org/qt/clang/llvm-project/-/commit/b23965baa8044edd310c6262900c6a2e3f2fd6bb

Git commit 1533fd95be9ff691b0bd70e589ffa273cf64e9db by GitHub (on behalf of Baranov Victor) on 07/08/2026 at 11:29..
[clang-tidy][NFC] Apply readability-redundant-nested-if 3/N (#214693)
https://invent.kde.org/qt/clang/llvm-project/-/commit/1533fd95be9ff691b0bd70e589ffa273cf64e9db

Git commit 21b86ec1179db35b1f865a7757880aa7f170d6d5 by GitHub (on behalf of Paul Walker) on 07/08/2026 at 11:46..
[LLVM][CodeGen][AArch64] Increase opportunities to fold shift-of-extend into sshll/ushll. (#213989)

Add PreprocessISelDAG logic to undo mul-of-shl to shl-of-mul
canonicalisation when either operand is sign/zero extended because the
extension can be folded into the shift.
https://invent.kde.org/qt/clang/llvm-project/-/commit/21b86ec1179db35b1f865a7757880aa7f170d6d5

Git commit b2f13804c816248653c866dd2f39e83cfd475e3f by GitHub (on behalf of Nerixyz) on 07/08/2026 at 11:47..
[lldb][Windows] Fix value API tests (#214237)

This removes the XFAILs for the value API tests.

- For `lldb/test/API/python_api/value/TestValueAPI.py`, we need to pass
`/debug:symtab` to the linker to get a symbol table. Symbols are
"hidden" by default. PDB works around this in the publics stream. For
DWARF, we need `/debug:symtab`. An alternative is to use `/debug:dwarf`
which also enables this.
- For
`lldb/test/API/python_api/value/change_values/TestChangeValueAPI.py`
there were two issues. First, the stdout wasn't available when we
stopped at a breakpoint. Adding a `fflush(stdout)` fixes this.
Secondly, the breakpoint was created where the inputs to `printf` were
already evaluated. I added another assignment where we set the
breakpoint.

The added `fflush` might also help with this being flakey on Linux
(#26026).

Closes #25146
https://invent.kde.org/qt/clang/llvm-project/-/commit/b2f13804c816248653c866dd2f39e83cfd475e3f

Git commit be7988c43e1745db1de65c1b1d5fc58a3fe5fa77 by Balazs Benics on 07/08/2026 at 11:58..
[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/be7988c43e1745db1de65c1b1d5fc58a3fe5fa77

Git commit 5e98d1a82e052ea50f1736984fdbbe161712d6d4 by Balazs Benics on 07/08/2026 at 11:58..
tmp - Test that three-level chain records only direct override edges

`overridden_methods()` is not transitive. This means that it describes
the directly overridden methods - which is usually a single method
(unless it overrides the same function from multiple parents).

This test case demonstrates that A::f overrides B::f which overrides C::f.
And that it's not that A::f overrides C::f without overriding B::f first.

Assisted-By: claude
https://invent.kde.org/qt/clang/llvm-project/-/commit/5e98d1a82e052ea50f1736984fdbbe161712d6d4

Git commit 35e38fb1ffc57cca79dc237f65691d658de99a48 by Balazs Benics on 07/08/2026 at 11:58..
[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/35e38fb1ffc57cca79dc237f65691d658de99a48

Git commit 8ad180b8d01d007a5650c6648d40b0c8a882f133 by Balazs Benics on 07/08/2026 at 11:58..
[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/8ad180b8d01d007a5650c6648d40b0c8a882f133

Git commit e732ce41a9f04f49ed9e8f8fd0bba13f13582a3f by Balazs Benics on 07/08/2026 at 11:58..
[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/e732ce41a9f04f49ed9e8f8fd0bba13f13582a3f
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.