[qt/clang/llvm]: 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 Pushed by mirror-service into branch 'upstream/users/jrtc27/lld-Symbol-remove-copy-constructor'. Changed from 15b393ef5dc8e1d1ad844a472a8aaa65bbba891a to d3fdae2a11b250a79eed027f2d9ef3360cc112f3 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 8d933f7478435d35b6f3b6123318f1e353adea88 by GitHub (on behalf of Joshua Batista) on 23/07/2026 at 17:13.. Add InterlockedAdd resource methods (#208128) This PR builds upon the work merged in https://github.com/llvm/llvm-project/pull/195742, and completes the implementation of the InterlockedAdd functions in HLSL, by adding these methods to the existing resource types. Fixes: https://github.com/llvm/llvm-project/issues/99122 Assisted by: Github Copilot https://invent.kde.org/qt/clang/llvm/-/commit/8d933f7478435d35b6f3b6123318f1e353adea88 Git commit 710cca19f0d1d95174cc52bc41df56c26b9f19d2 by GitHub (on behalf of Florian Hahn) on 23/07/2026 at 17:15.. [LV] Use planner's TTI in executePlan instead of CM.TTI (NFC) (#211588) LoopVectorizationPlanner already holds TTI, no need to go through CM. https://invent.kde.org/qt/clang/llvm/-/commit/710cca19f0d1d95174cc52bc41df56c26b9f19d2 Git commit 89e637a8dca75d4a71e4a1ce669397d59ce77ab7 by GitHub (on behalf of Shilei Tian) on 23/07/2026 at 17:15.. [NFC][AMDGPU] Remove reundant run lines from two test cases (#211575) https://invent.kde.org/qt/clang/llvm/-/commit/89e637a8dca75d4a71e4a1ce669397d59ce77ab7 Git commit 7f140055b724bfd0759807b79ee1b8544f023340 by GitHub (on behalf of Louis Dionne) on 23/07/2026 at 17:21.. [libc++] Pin down the compiler in the various benchmark scripts and jobs (#211563) We have various scripts that build and test the library at pinpointed commits: benchmark-historical, run-benchmarks, build-at-commit and test-at-commit. They were handling the compiler in different ways: some scripts would just run the libc++ build (or test suite configuration) without specifying the compiler, which means the $CXX environment variable was used if present. Other scripts (e.g. run-benchmarks) would accept the compiler as an argument, but would fail to pass it down when configuring the test suite, which led to issues. This patch passes the compiler explicitly in all scripts: this removes any potential confusion around how the compiler should be specified (env var or argument). The only exception is build-at-commit, where the compiler is still specified by passing the appropriate CMake arguments. The reason for this exception is that passing arguments to CMake is actually the way we want to configure aspects of the build (and the test suite) in the long term, it's just that the test suite doesn't support this cleanly due to the CMake/Lit split at the moment. In the longer term, `test-at-commit` should also lose its `--compiler` argument in favour of being able to pass CMake parameters to the test suite configuration, but we are not there yet. https://invent.kde.org/qt/clang/llvm/-/commit/7f140055b724bfd0759807b79ee1b8544f023340 Git commit 36916031c97477f8d865488185cfb7da89aa5d21 by GitHub (on behalf of Farzon Lotfi) on 23/07/2026 at 17:23.. [SPIRV][Matrix] Change Matrix Shader legalization to largest common divisor (#207768) fixes #186864 New process for matrix legalization documented here: https://github.com/llvm/wg-hlsl/pull/446 The current Matrix legalization strategy is to take a vector of and expanded to a larger power of 2 vector and then split it into vectors of size 4. For example a vector of size 6 is expanded to 8, and then split. This creates uniform 4-lane chunks but requires padding. For example `<12>`-->`<16>`, `<6>`-->`<8>`, `<9>`-->`<16>`. These forces an illegal wide `G_BUILD_VECTOR` with undef lanes. This padding wastes lanes and adds undef bookkeeping the backend must then clean up. Instead This PR splits both operands into `W`-lane chunks, where `W` is the largest divisor of the element count in `[2, MaxVectorSize]` shared by source and destination (`<12>`-->3×`<4>`, `<6>`-->2×`<3>`, `<9>`-->3×`<3>`), and emit chained per-chunk `OpVectorShuffle`s. This keeps every chunk a legal SPIR-V vector with no undef padding and preserves vectorized `OpDot`/`OpSelect` downstream. Assisted with Claude Opus 4.8 via Co-pilot https://invent.kde.org/qt/clang/llvm/-/commit/36916031c97477f8d865488185cfb7da89aa5d21 Git commit c98ace924d8bd6ce357a993832c9dffde0806823 by GitHub (on behalf of Valery Pykhtin) on 23/07/2026 at 17:34.. [NFC][AMDGPU] Use SIInstrFlags predicates in AMDGPUAsmParser (#210998) https://invent.kde.org/qt/clang/llvm/-/commit/c98ace924d8bd6ce357a993832c9dffde0806823 Git commit 04b71a38393a85db49047d547fd9d94aafa1857b by GitHub (on behalf of vangthao95) on 23/07/2026 at 17:48.. [AMDGPU] Regenerate failing packed-fp64.ll test (#211616) Missed this one in https://github.com/llvm/llvm-project/pull/211598. https://invent.kde.org/qt/clang/llvm/-/commit/04b71a38393a85db49047d547fd9d94aafa1857b Git commit 8f64a4806ffbf577a91390750c2701de2c6496af by GitHub (on behalf of Ian.han) on 23/07/2026 at 17:50.. [sanitizer_common] Don't crash in fopen64 interceptor when path is NULL (#211468) `fopen` was fixed to tolerate a NULL `path` in 2015 (1d1be3dd8822), and `freopen`/`freopen64` carry the same `if (path)` guard. `fopen64` was missed, so `fopen64(NULL, mode)` dereferences NULL inside the interceptor and crashes under sanitizers, even though real `fopen64` would just return NULL/EFAULT. Add the missing `if (path)` guard, plus a regression test mirroring `fopen_nullptr.c`. Since `fopen64` is only intercepted on glibc (`SANITIZER_INTERCEPT_FOPEN64`), the test is placed under `Linux/` and gated with `// REQUIRES: glibc`. https://invent.kde.org/qt/clang/llvm/-/commit/8f64a4806ffbf577a91390750c2701de2c6496af Git commit 88d17fa88fb58d8b2d64e923dc4dc7b043201b87 by GitHub (on behalf of Jessica Clarke) on 23/07/2026 at 18:00.. [NFC][test][ELF] Check DSO's ifunc2 is in .iplt in aarch64-ifunc-bti.s (#210618) This mirror's the PIE's CHECK lines, which were already stricter. --- <sub>Stack created with <a href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub> https://invent.kde.org/qt/clang/llvm/-/commit/88d17fa88fb58d8b2d64e923dc4dc7b043201b87 Git commit 50ce5f724db70b9b520002fda1098dc19a87ff07 by GitHub (on behalf of Jessica Clarke) on 23/07/2026 at 18:00.. [NFC][test][ELF] Improve ppc32-ifunc-nonpreemptible-(no)pic.s (#210611) Firstly, the nopic test had an unused HEX check line when it should have been checking .got.plt, and the pic test was only checking .got2, also ignoring .got.plt. Secondly, the indentation for instructions was inconsistent within a single file. Thirdly, neither test was actually checking the code for func's IPLT entry in .glink, only that the symbol existed as a normal function that wasn't the same as the resolver, and the nopic test wasn't even testing the full contents of the PLT call stub, which was inconsistent with the pic test. Fourthly, the pic test used the same output file for two different links, which can be confusing when debugging. Finally, the comment at the start of the pic test's PLT call stub had no bearing on the immediate in use, instead being the same as the nopic's one with the 4 subtracted from both sides (presumably trying to account for the nopic test not having the extra .got2 entry, but neglecting the fact that it's not using absolute addressing, and even if it were, the addresses are entirely different). --- <sub>Stack created with <a href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub> https://invent.kde.org/qt/clang/llvm/-/commit/50ce5f724db70b9b520002fda1098dc19a87ff07 Git commit 67ec9e8e7f57aeae70eeb1bf3c86395d286f7c2f by Jessica Clarke on 23/07/2026 at 18:00.. [NFC][ELF] Avoid need to copy Symbol in replaceWithDefined Firstly, by overwriting the symbol, it will have its existing flags, so there is no need to copy them back; all we need to do is mask out the other bits on the existing symbol. Secondly, copying the whole symbol just to preserve the symbol version that gets cleared by Defined::overwrite is a waste; just copy the single member to reinstate it. https://invent.kde.org/qt/clang/llvm/-/commit/67ec9e8e7f57aeae70eeb1bf3c86395d286f7c2f Git commit 36ccda82f72d05abdd422b844373be1a9089ab89 by Jessica Clarke on 23/07/2026 at 18:00.. [NFC][ELF] Only create alias in handleNonPreemptibleIfunc if needed In the no direct relocations case, the original IFUNC symbol keeps its value, and so there's no need to create a separate alias; it's only needed when the original symbol is being redirected to the IPLT as a normal function symbol. This change also shifts the isInIplt assignment to be explicit and mirror the allocateAux/pltIdx uses, rather than relying on makeDefined copying it, and to be clear that this is in fact deliberately and consistently being copied like them. https://invent.kde.org/qt/clang/llvm/-/commit/36ccda82f72d05abdd422b844373be1a9089ab89 Git commit c9013b234c9ed9c4a6d36185ca457be340455125 by Jessica Clarke on 23/07/2026 at 18:00.. [NFC][ELF] Create fresh alias in handleNonPreemptibleIfunc We don't need to copy the full symbol here, we just want an internal alias to use for the IPLT and IGOTPLT entries and IRELATIVE relocation's addend. https://invent.kde.org/qt/clang/llvm/-/commit/c9013b234c9ed9c4a6d36185ca457be340455125 Git commit d3fdae2a11b250a79eed027f2d9ef3360cc112f3 by Jessica Clarke on 23/07/2026 at 18:00.. [NFC][ELF] Remove Symbol's unused copy constructor Now that we are no longer copying symbols via the copy constructor we can remove it. Given we track symbol pointers in various data structures it can be dangerous to have multiple objects for the same symbol that would risk being viewed inconsistently, or even moved and the original lost, though no such cases exist upstream that I'm aware of. Copying a symbol entirely is also a weird thing to do, and can be inefficient, so when copies are being made it's best to be explicit about the members to copy. This also makes it clearer to understand what members are relevant, rather than implicitly copying all the members, most of which aren't relevant in practice. Whilst the copy/move constructors/assignment operators are currently implicitly deleted due to the atomic flags member, explicitly delete them all so they remain deleted in case that ever changes. https://invent.kde.org/qt/clang/llvm/-/commit/d3fdae2a11b250a79eed027f2d9ef3360cc112f3