[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