[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/jerryyin/amdgpu-hoist-uniform-readfirstlane-upstream'. Changed from 0000000000000000000000000000000000000000 to fcd9497f018df79324da2fbeddc86d76a9ddba10 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 1c7c783ba262a9ce9d6e5c070f0d7fb85125cedd by GitHub (on behalf of Mayank) on 22/07/2026 at 11:25.. [Docs] Remove dead Phabricator link from DeveloperPolicy (#210934) The Phabricator committing-a-change anchor no longer resolves since Phabricator has been discontinued, so drop the reference and keep the GitHub Issues guidance for linking reviewed/closed bugs. https://invent.kde.org/qt/clang/llvm-project/-/commit/1c7c783ba262a9ce9d6e5c070f0d7fb85125cedd Git commit 88840f264de6e0e6548219429ff62b3354db5210 by GitHub (on behalf of Ayokunle Amodu) on 22/07/2026 at 11:30.. [CIR][CUDA] Add support for scoped NVVM atomic builtins (#210863) Adds codegen support for the block and system-scoped NVVM atomic builtins: add, and, or, xor, min, max, inc and dec. These are lowered to the corresponding CIR `cir.atomic.fetch` operations and subsequently lowered to LLVM `atomicrmw` instructions. https://invent.kde.org/qt/clang/llvm-project/-/commit/88840f264de6e0e6548219429ff62b3354db5210 Git commit 31810a1d28e966fe757e5221c41c0610dc9c1203 by GitHub (on behalf of Petar Avramovic) on 22/07/2026 at 11:44.. AMDGPU: Refactor checkVOPDRegConstraints (#196514) https://invent.kde.org/qt/clang/llvm-project/-/commit/31810a1d28e966fe757e5221c41c0610dc9c1203 Git commit 05daf2a85768d51dbe96953c5704dea1e45fe0b3 by GitHub (on behalf of Paul Walker) on 22/07/2026 at 11:52.. [LLVM][AArch64TargetTransformInfo] Fix typos in SVEIntrinsicInfo. (#211230) Correct Propery->Property and sprinkle a couple of extra comments. https://invent.kde.org/qt/clang/llvm-project/-/commit/05daf2a85768d51dbe96953c5704dea1e45fe0b3 Git commit 3ac7573589eaa2d3ea107285ca10e0f52cbfbcfd by GitHub (on behalf of Jannick Kremer) on 22/07/2026 at 12:04.. [libclang/python] Remove CompletionChunk.isKind methods (#210678) This completes the third step of https://github.com/llvm/llvm-project/issues/156680 This change is a follow-up to https://github.com/llvm/llvm-project/pull/177854, following the release branching, to ensure a one release-cycle deprecation period. https://invent.kde.org/qt/clang/llvm-project/-/commit/3ac7573589eaa2d3ea107285ca10e0f52cbfbcfd Git commit 3407cd1892b8a64b6f267e78b351b1415d2bafa5 by GitHub (on behalf of Petar Avramovic) on 22/07/2026 at 12:09.. AMDGPU: Validate VOPD/VOPD3 physical source registers against operand RC (#196515) Replace isVGPR checks with isValidVOPDSrc that validates physical source registers against the actual combined VOPD/VOPD3 instruction's operand register classes. Now we also validate operands for VOPD instructions. https://invent.kde.org/qt/clang/llvm-project/-/commit/3407cd1892b8a64b6f267e78b351b1415d2bafa5 Git commit 3369ddd384780f2ae60c3b20264735c2823d261c by GitHub (on behalf of Petar Avramovic) on 22/07/2026 at 12:10.. AMDGPU: Reland: Codegen for v_dual_dot2acc_f32_f16/bf16 from VOP3 (#196516) For V_DOT2_F32_F16 and V_DOT2_F32_BF16 add their VOPDName and mark them with usesCustomInserter which will be used to add pre-RA register allocation hints to preferably assign dst and src2 to the same physical register. When the hint is satisfied, canMapVOP3PToVOPD recognises the instruction as eligible for VOPD pairing by checking if it is VOP2 like: dst==src2, no source modifiers, no clamp, and src1 is a register. Mark both instructions as commutable to allow a literal in src1 to be moved to src0, since VOPD only permits a literal in src0. Original patch had a bug where it did not check if physical src registers match register class of appropriate operand in fullVOPD instructions, check is now done via isValidVOPDSrc. https://invent.kde.org/qt/clang/llvm-project/-/commit/3369ddd384780f2ae60c3b20264735c2823d261c Git commit bad9ad339743d262793c15fddfab90bd976e531b by GitHub (on behalf of Matthew Blewitt) on 22/07/2026 at 12:17.. [AArch64][SVE] Fix v16i8 -> v2i64 partial_reduce for VL > 128 (#204938) A fixed-length `llvm.vector.partial.reduce.add` reducing `<16 x i8>` into `<2 x i64>` is lowered on `+sve` by converting the reduction to a scalable one and finishing with `convertFromScalableVector`. The i8 -> i64 fold splits the `(nx)v4i32` dot before converting it back to fixed length, but splitting a scalable container is not equivalent to splitting the fixed vector it holds: at vscale=2 an `nxv4i32` container splits into two `nxv2i32`, each holding four i32s, not the two-lane halves of the underlying `v4i32`. The high partial sums land in lanes that `convertFromScalableVector` then discards, so any runtime VL > 128 silently drops them — on a 256-bit machine (e.g. Neoverse V1) exactly half the result is lost (#204939; downstream miscompile rust-lang/rust#158144). Convert the dot back to a fixed-length i32 vector before splitting, so the split, widen and accumulate all happen in fixed length and no lanes are dropped. The fixed dot width is derived from the result (two i32 lanes per i64 result lane) so the wider, VL-pinned `<4 x i64> <- <32 x i8>` reduction — which also reaches this fold on plain SVE — lowers correctly. This is the i64 sibling of the `v16i8 -> v2i32` case fixed in #177119 (issue #176954); the fixed-length support was introduced in #142032. https://invent.kde.org/qt/clang/llvm-project/-/commit/bad9ad339743d262793c15fddfab90bd976e531b Git commit f5430c58d13c2e763b62d52e35e0e2859e57ff66 by GitHub (on behalf of Michael Halkenhäuser) on 22/07/2026 at 12:24.. [NFC] Reword comment per post-merge feedback on #211031 (#211234) As discussed with krzysz00 https://invent.kde.org/qt/clang/llvm-project/-/commit/f5430c58d13c2e763b62d52e35e0e2859e57ff66 Git commit 29575a3460b43132c7d973b502830897b02874a9 by GitHub (on behalf of syhhyl) on 22/07/2026 at 12:25.. [MachO] Preserve weak linkage for aliases (#198148) Mach-O aliases with weak or linkonce linkage were emitted as weak references, which is appropriate for undefined references but not for alias definitions. Emit Mach-O aliases through the same linkage path as other global definitions so weak aliases get .weak_definition. When writing aliased symbols, keep the aliasee flags and include the alias symbol's own flags so N_WEAK_DEF is preserved in the Mach-O n_desc field. Fixes #111321 #196047 was closed as a duplicate of #111321. https://invent.kde.org/qt/clang/llvm-project/-/commit/29575a3460b43132c7d973b502830897b02874a9 Git commit 6f47123da4209cad8e043279d8572760a3e59af6 by GitHub (on behalf of Jay Foad) on 22/07/2026 at 12:26.. [AMDGPU] Remove some unneeded waits for VA_VDST (#210741) Add some internal consistency checks on WaitcntBrackets before and after processing each instruction. In particular, check that VA_VDST_RD and VA_VDST_WR agree on the range of values of the underlying hardware counter. Fix some cases where this was not true, which has the effect of removing some unneeded waits for VA_VDST where it was already known to be zero. https://invent.kde.org/qt/clang/llvm-project/-/commit/6f47123da4209cad8e043279d8572760a3e59af6 Git commit 04327b1e595ac915a196340a37f48c16e6f489bc by GitHub (on behalf of Vladimir Vereschaka) on 22/07/2026 at 12:37.. Revert "[libc++][test] XFAIL `text/text_encoding/environment.pass.cpp` test on Armv7/Linux Ubuntu targets." (#211112) Reverts #206188 XFAIL'ed wrong test https://invent.kde.org/qt/clang/llvm-project/-/commit/04327b1e595ac915a196340a37f48c16e6f489bc Git commit ef13d4687b5fb29d8e162f4c4cce5b3c7cd58570 by GitHub (on behalf of Nerixyz) on 22/07/2026 at 12:43.. [CodeView] Encode signed enumerators as signed integers (#210352) In #210338 I noticed that enumerator constants were always encoded as unsigned integers. MSVC (usually) uses the correct signedness (comparison: https://godbolt.org/z/rbrchhjTT). It only uses signed values for 64 bit unsigned values (probably a bug). We know the signedness in `DIEnumerator` and we should use it. The change in `llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp` was needed, because the max/min values need all the bits to encode their value - otherwise we hit an assertion. This also encodes the saturated value (`INT64_MIN = 0x8000000000000000`) in the int128 test correctly (initially added in https://reviews.llvm.org/D105320). https://invent.kde.org/qt/clang/llvm-project/-/commit/ef13d4687b5fb29d8e162f4c4cce5b3c7cd58570 Git commit 08f3f01c43819979601ebf7618b657567ed9871f by GitHub (on behalf of Vladislav Dzhidzhoev) on 22/07/2026 at 12:54.. [DirectX][MC] Fix dangling StringRefs in DXContainerWriterTest (#211227) Building Parts from SmallString elements invalidated StringRefs on vector reallocation, so the test was dying under MSan before the expected fatal error. Fixes buildbot failures https://github.com/llvm/llvm-project/pull/204903#issuecomment-5039669504. https://invent.kde.org/qt/clang/llvm-project/-/commit/08f3f01c43819979601ebf7618b657567ed9871f Git commit 12e6cd9ea166b0ed09c83aae42cb83231461f6f2 by GitHub (on behalf of Nikita Popov) on 22/07/2026 at 12:55.. [PPC] Constrain register in VSPLT of XXSLDWI transform (#208005) XXSLDWI takes a vsrc register, but the VSPLT opcodes only take vrrc. vrrc is a subset of vsrc, so fix this by constraining the register class. https://invent.kde.org/qt/clang/llvm-project/-/commit/12e6cd9ea166b0ed09c83aae42cb83231461f6f2 Git commit 6ac80addbe9c12dd0a110a76fa2c09eb53764e64 by GitHub (on behalf of Charles Zablit) on 22/07/2026 at 12:56.. [lldb-dap][VSCode][Windows] check that --check-python is available before using it (#211048) `--check-python` is only available as of lldb-dap 23. Running that check regardless of it's availability causes the extension to fail to start if it's not available. Check that the flag is available first by searching for it in the `--help`. Checking for a version number would be a cleaner approach but I reckon it would fail for local builds. Fixes https://github.com/llvm/llvm-project/issues/210879 https://invent.kde.org/qt/clang/llvm-project/-/commit/6ac80addbe9c12dd0a110a76fa2c09eb53764e64 Git commit 6abffd7c22f7e1c0cf07ad6763495e098f580d10 by GitHub (on behalf of Keshav Vinayak Jha) on 22/07/2026 at 12:59.. [SelectionDAG] Allow constant UREM decomposition without high multiply (#210232) `SelectionDAG` may introduce a wide constant UREM when promoting funnel shifts on irregular integer types. On AMDGPU, an i65 `fshl` becomes an i128 remainder by 65; the existing decomposition is rejected because i64 `MULHU` and `UMUL_LOHI` are unavailable, after which legalization attempts the unsupported `__umodti3` libcall. Allow the existing decomposition when the wide UREM libcall is unavailable and half-width `UDIVREM` is legal or custom. This lets AMDGPU finish through its custom i64 `UDIVREM` lowering while preserving the existing libcall preference for targets with a usable wide libcall. Fixes #197949 Signed-off-by: Keshav Vinayak Jha <[email protected]> Co-authored-by: Codex <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/6abffd7c22f7e1c0cf07ad6763495e098f580d10 Git commit 9d3fe6cf06f1c20a337ce546115523bf1db925de by GitHub (on behalf of Stephen Long) on 22/07/2026 at 13:03.. [mlir][sme] Add e2e test for lowering mmt4d to sme (#208226) Lowers mmt4d to arm sme with hoisting the load/store of the accumulator out of the K-loop. Similar to ArmSVE/pack-unpack-mmt4d.mlir with some additional changes. Appreciate @banach-space for helping me out with this (#201562) Assisted-by: Claude --------- Co-authored-by: Stephen Long <[email protected]> Co-authored-by: Ege Beysel <[email protected]> Co-authored-by: Andrzej Warzyński <[email protected]> https://invent.kde.org/qt/clang/llvm-project/-/commit/9d3fe6cf06f1c20a337ce546115523bf1db925de Git commit e757e814e30741d6eae6044cea22dca78baa4edf by GitHub (on behalf of Luke Lau) on 22/07/2026 at 13:05.. [AMDGPU] Cost i1 insertelements as free (#211246) From the discussion in https://github.com/llvm/llvm-project/pull/206697#discussion_r3503977327 Booleans are free to scalarize in AMDGPU, so mark insertelements into i1 vectors as free. This removes some of the AMDGPU diffs from #206697 This doesn't mark extractelements as free since that ends up flattening the costs for `vector.reduce.or/and`. https://invent.kde.org/qt/clang/llvm-project/-/commit/e757e814e30741d6eae6044cea22dca78baa4edf Git commit d9cf5980b7788a8840d69c6e4abb9092a35997bc by GitHub (on behalf of Shilei Tian) on 22/07/2026 at 13:12.. [Clang][LTO] Assign GUIDs after post-opt bitcode linking (#211155) Run AssignGUIDPass after LinkInModulesPass so newly linked globals have GUIDs before LTO summary emission. Fixes LCOMPILER-2475. https://invent.kde.org/qt/clang/llvm-project/-/commit/d9cf5980b7788a8840d69c6e4abb9092a35997bc Git commit 150aa53d48aa6fdde26e00ea118582eb949f0dca by GitHub (on behalf of Alexander Kornienko) on 22/07/2026 at 13:29.. Revert "[Clang] Rebuild lambda captures in default member initializers while skipping body (#196597)" (#211001) This reverts commit 50f30bedaa81919915049474f4350ef19c36b7ca. The commit causes a crash in clang: https://github.com/llvm/llvm-project/pull/196597#issuecomment-4997866573 https://invent.kde.org/qt/clang/llvm-project/-/commit/150aa53d48aa6fdde26e00ea118582eb949f0dca Git commit 6b52427b6864cc553d9506c39b7f1bfde5f1e170 by GitHub (on behalf of Paul Walker) on 22/07/2026 at 13:33.. [LLVM] Remove SVEIntrinsicOpts pass. (#210368) https://invent.kde.org/qt/clang/llvm-project/-/commit/6b52427b6864cc553d9506c39b7f1bfde5f1e170 Git commit fdae383abe622856b2178b1eb2d6f1c454acf176 by GitHub (on behalf of Madhur Amilkanthwar) on 22/07/2026 at 13:44.. [SLP][modularisation][NFC] Extract same-opcode compatibility helpers (1/3) (#210923) Move the SLP same-opcode compatibility primitives out of SLPVectorizer.cpp into a new private module SLPVectorizer/SLPCompatibilityAnalysis.{h,cpp}: * isValidForAlternation * BinOpSameOpcodeHelper Part of the effort to modularize SLPVectorizer.cpp. See the RFC: https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922 https://invent.kde.org/qt/clang/llvm-project/-/commit/fdae383abe622856b2178b1eb2d6f1c454acf176 Git commit 84301dd17f4261b4b8c293cd21b6641b3fdc0add by GitHub (on behalf of Thibault Monnier) on 22/07/2026 at 13:57.. [Clang][Lexer] Reland "Detect SSE4.2 availability at runtime in fastParseASCIIIdentifier" (#180631) This PR reopens #175452 after it was merged then reverted by #177322 because of compilation failures and compatibility issues. This change attempts to maximize usage of the SSE fast path in `fastParseASCIIIdentifier`. If the binary is compiled with SSE4.2 enabled, or if we are not compiling for x86, then the behavior is the exact same, ensuring we have no regressions. Otherwise, we compile both the SSE fast path and the scalar loop. At runtime, we check if SSE4.2 is available and dispatch to the right function by using `__builtin_cpu_supports`. If it _is_ available, this allows a net performance improvement. Otherwise, there's a very slight but negligible regression... I believe that's perfectly reasonable for a non-SSE4.2-supporting processor. The benchmark results are available here: https://llvm-compile-time-tracker.com/compare.php?from=3192fe2c7b08912cc72c86471a593165b615dc28&to=8960c57a2e5880616d2dd549f8422ca91c864e86&stat=instructions%3Au. https://invent.kde.org/qt/clang/llvm-project/-/commit/84301dd17f4261b4b8c293cd21b6641b3fdc0add Git commit 75e637791bff7b6c0c11754fb29991b6b140ee2c by GitHub (on behalf of Arseniy Obolenskiy) on 22/07/2026 at 14:03.. [mlir][SPIR-V] Lower memref.copy to spirv.CopyMemory (#206016) https://invent.kde.org/qt/clang/llvm-project/-/commit/75e637791bff7b6c0c11754fb29991b6b140ee2c Git commit 3a1f2e1da409a473b4b357810c4a37fd178aa3ca by GitHub (on behalf of Jonas Devlieghere) on 22/07/2026 at 14:09.. [lldb][test] Skip stop-reason tests unsupported on WebAssembly (#211266) TestThreadStates::test_process_state expects a signal stop reason after "process interrupt", but the trap from the single step used to step off the breakpoint is reported as a trace stop. It is already skipped on Linux and Darwin for the same reason. TestBuiltinDebugTrap expects to continue past __builtin_debugtrap, but on WebAssembly that lowers to the unreachable instruction, a fatal trap that cannot be resumed. https://invent.kde.org/qt/clang/llvm-project/-/commit/3a1f2e1da409a473b4b357810c4a37fd178aa3ca Git commit 8ad500f6f7d7347ca097d9c442fbf4a0f604dc26 by GitHub (on behalf of Tom Stellard) on 22/07/2026 at 14:10.. workflows/release-documentation: Add missing checkout (#211082) We need to checkout the upload-release-artifact composite action before using it. https://invent.kde.org/qt/clang/llvm-project/-/commit/8ad500f6f7d7347ca097d9c442fbf4a0f604dc26 Git commit 02c51adb8ff2b2b4c1041ac9f9d260c20ef77cc4 by GitHub (on behalf of Nikolas Klauser) on 22/07/2026 at 14:16.. [libc++] Remove redundant benchmarks for lexicographical_compare_three_way (#210268) We already test the `_slow_path` and `_fast_path` functions through the generic `BM_lexicographical_compare_three_way`. We don't need to benchmark them again. https://invent.kde.org/qt/clang/llvm-project/-/commit/02c51adb8ff2b2b4c1041ac9f9d260c20ef77cc4 Git commit 155689a48e43878d2252cd39037909e87b018103 by GitHub (on behalf of Vito Secona) on 22/07/2026 at 14:22.. [mlir][SPIRV] Add SPIRVToLLVM conversion for selection with yielding values (#210600) The current SPIRVToLLVM conversion for SelectionOp does not handle merge blocks with yielding values. This change implements that by adding arguments to the continue block in the SelectionPattern. Closes #204714 https://invent.kde.org/qt/clang/llvm-project/-/commit/155689a48e43878d2252cd39037909e87b018103 Git commit fcd9497f018df79324da2fbeddc86d76a9ddba10 by jerryyin on 22/07/2026 at 14:34.. [AMDGPU][MachineLICM] Hoist loop-invariant readfirstlane out of uniform loops readfirstlane is convergent, so MachineLICM never hoists it. But a v_readfirstlane_b32 whose operands (including its implicit EXEC use) are loop-invariant is safe to hoist: in a uniform loop the first active lane is the same every iteration, so the broadcast is loop-invariant. - Add TargetInstrInfo::isConvergentInstrHoistable() (default false) and let MachineLICM consult it instead of bailing unconditionally on convergent. - SIInstrInfo opts in V_READFIRSTLANE_B32 (guarded by -amdgpu-hoist-uniform-readfirstlane). - SIRegisterInfo::shouldAnalyzePhysregInMachineLoopInfo tracks EXEC so the loop-invariance check gates hoisting to uniform loops (EXEC not redefined); divergent loops keep the broadcast, preserving correctness. https://invent.kde.org/qt/clang/llvm-project/-/commit/fcd9497f018df79324da2fbeddc86d76a9ddba10