[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/pierre-vh/synthetic-apertures'. Changed from 11f6bcbc1e83906f188f8b85d3591cefcb8d8aa7 to 7d33b5624630b7baf09bd62729ea3eecfe6b301a 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 4b6a8d81da1a9eb1cee48c318b156ef2f2645c94 by GitHub (on behalf of Matt Arsenault) on 03/08/2026 at 05:24.. AMDGPU: Migrate most llvm-objdump tests to use subarch triple (#213589) https://invent.kde.org/qt/clang/llvm/-/commit/4b6a8d81da1a9eb1cee48c318b156ef2f2645c94 Git commit 04ea62bc5e2c5596866de7ee6a9c3a8b6aa54d35 by GitHub (on behalf of Arseniy Obolenskiy) on 03/08/2026 at 05:25.. [AMDGPU] Fix miscompile trimming sparse DMask on image stores (#213586) Dropping a channel from a sparse DMask removes that write entirely It does not zero-fill like a contiguous trim does Only simplify stores when DMask is a contiguous prefix https://invent.kde.org/qt/clang/llvm/-/commit/04ea62bc5e2c5596866de7ee6a9c3a8b6aa54d35 Git commit 4f607e3cd911ccc3d1aab73129aacea97d864663 by GitHub (on behalf of Matt Arsenault) on 03/08/2026 at 05:42.. AMDGPU: Migrate misc. tests to subarch triples (#213593) https://invent.kde.org/qt/clang/llvm/-/commit/4f607e3cd911ccc3d1aab73129aacea97d864663 Git commit 278b9af90c6fd32776ad3f4f4b5eab87f52587e2 by GitHub (on behalf of Sam Elliott) on 03/08/2026 at 06:02.. [RISCV][MC] Emit Better Token Diagnostics (#209700) This implements an old FIXME in the AsmMatcherEmitter, which can now emit a token-specific match error diagnostic id, and potentially a token-specific error message to go along with the diagnostic id. For RISC-V, the overall effect is to have fewer "invalid operand for instruction" diagnostics and have more "expected '<TOKEN>'" diagnostics, which, with multiple near miss support, gives the user the location that token was expected (but not found). The rejig to the order of checks in `validateOperandClass` do not prevent backends from having custom operand kinds which can accept tokens, as was available before. The TableGen parts have been implemented in an opt-in way. --- This was implemented with the assistance of AI. https://invent.kde.org/qt/clang/llvm/-/commit/278b9af90c6fd32776ad3f4f4b5eab87f52587e2 Git commit 187c39ba03cfed96c8aab9d0c951d0bea6f27b82 by GitHub (on behalf of Abhinav Gaba) on 03/08/2026 at 06:07.. [OpenMP] Propagate ALWAYS/DELETE/CLOSE map-type modifiers to mapper entries (#210210) Per OpenMP, when a map/motion clause uses a mapper, any map-type-modifying modifier on that clause applies to each map the declared mapper specifies. This change propagates the `ALWAYS`, `DELETE`, and `CLOSE` bits from the outer clause's map type into every entry emitted by emitUserDefinedMapper, except `ATTACH` entries (`ATTACH`|`ALWAYS` is reserved for `attach(always)`, and the other bits have no meaning for an `ATTACH` entry). `PRESENT` is intentionally NOT propagated here: it requires distinguishing pointee entries from the struct's own storage and is handled in a follow-up. Co-authored-by: Claude Opus 4.8 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/187c39ba03cfed96c8aab9d0c951d0bea6f27b82 Git commit e2c8f57f00971712c1732b137a9afc539e38ff37 by GitHub (on behalf of Robert Imschweiler) on 03/08/2026 at 06:28.. [OpenMPOpt] Null generic-mode wrappers for SPMDized kernels (#207611) If a kernel gets SPMDized, it doesn't need the wrapper function that is passed to __kmpc_parallel_60. Keeping the dead wrapper function can lead to lots of misleading "local memory global used by non-kernel function" AMDGPU backend warnings. Let OpenMPOpt null the wrapper argument such that DCE can then remove the corresponding dead functions. Claude assisted with this patch. https://invent.kde.org/qt/clang/llvm/-/commit/e2c8f57f00971712c1732b137a9afc539e38ff37 Git commit 7f161cde5751ab5ab38a5e52119f9fe867844758 by GitHub (on behalf of Kareem Ergawy) on 03/08/2026 at 06:40.. [flang-rt] enable IsNamelistNameOrSlash lookahead for scalar namelist items (#211224) Resolves https://github.com/llvm/llvm-project/issues/211747 Problem ------- An empty NAMELIST assignment on a scalar item — e.g. `l =` in &nml l= i_count=7 r_value=2.72/ — aborted at runtime with fatal Fortran runtime error: Bad character 'i' in LOGICAL input field Every EditIntegerInput / EditRealInput / EditLogicalInput / EditCharacterInput function starts its list-directed arm with if (IsNamelistNameOrSlash(io)) return false; // no value which peeks ahead (via SavedPosition, no stream consumption) for a `<name>=` / `<name>%` / `<name>(` shape or one of the terminators `/` `&` `$`, letting the reader bail cleanly for empty values and short-array ends. That helper's first line is if (!listInput || !listInput->namelistGroup()) return false; InputNamelist however called ResetForNextNamelistItem with `useDescriptor->rank() > 0 ? &group : nullptr`, so `namelistGroup_` stayed null for scalars. The peek was silently disabled and the value reader consumed the next namelist item's name as a bare token, producing the abort above. Legacy nvfortran / gfortran accept empty scalar assignments as "keep current value". Solution -------- Pass `&group` unconditionally to `ResetForNextNamelistItem`. Today `IsNamelistNameOrSlash` uses `namelistGroup_` only as a boolean gate (never as a lookup table), so widening it is a no-op for arrays and enables the same empty-value / next-name detection for scalars. NamelistTests.NanInputAmbiguity (which motivated the original pointer form) still passes; three new tests cover the empty-scalar case, the empty-array case, and an empty scalar surrounded by arrays. Co-authored-by: Claude Opus 4.7 <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/7f161cde5751ab5ab38a5e52119f9fe867844758 Git commit f7213d839614c3103f4be28a1459e7f12c44dc77 by GitHub (on behalf of Antonio Frighetto) on 03/08/2026 at 06:57.. [MemorySSA] Clarify `getClobberingMemoryAccess(MA, Loc)` overload does not accept MemoryUse (NFC) (#212512) Outdated comment has been updated to match the implementation, which asserts on MemoryUse. https://invent.kde.org/qt/clang/llvm/-/commit/f7213d839614c3103f4be28a1459e7f12c44dc77 Git commit f901de33ab614a7f13caa66ed966d3cd6bcb6eab by GitHub (on behalf of Antonio Frighetto) on 03/08/2026 at 06:58.. [GVNHoist] Use MemorySSA, drop MemoryDependenceAnalysis (NFCI) (#212773) Finalize MemorySSA usage in GVNHoist, while transitioning away from MemoryDependenceAnalysis. https://invent.kde.org/qt/clang/llvm/-/commit/f901de33ab614a7f13caa66ed966d3cd6bcb6eab Git commit 738029a68bd265cb4e65e03f63d84c027692adaa by GitHub (on behalf of Madhur Amilkanthwar) on 03/08/2026 at 06:58.. Enforce single-operand form for llvm.loop.vectorize metadata (#210932) This patch implements Phase 2 of the RFC "Enforce Single-Operand Format for All .enable Metadata Nodes". Please refer to RFC: https://discourse.llvm.org/t/rfc-enforce-single-operand-format-for-all-enable-metadata-nodes/90571/ The two-operand boolean form !{!"llvm.loop.vectorize.enable", i1 0/1} is replaced by a single-operand enable/disable pair: !{!"llvm.loop.vectorize.enable"} ; force vectorization !{!"llvm.loop.vectorize.disable"} ; suppress vectorization The Verifier rejects the two-operand form, AutoUpgrade rewrites old bitcode (including the legacy llvm.vectorizer.enable tag), and the readers and producers across LLVM, Clang, MLIR and Polly are updated. https://invent.kde.org/qt/clang/llvm/-/commit/738029a68bd265cb4e65e03f63d84c027692adaa Git commit a7cc9516751d6c5afe35da0628083879cb52f1c0 by GitHub (on behalf of Wenju He) on 03/08/2026 at 06:58.. [llvm-calc-occupancy] Fix title underline length (#213599) Fix error: invalid header length in 'CommandGuide/llvm-calc-occupancy.rst' (does not match length of title) in our downstream Sphinx doc build. https://invent.kde.org/qt/clang/llvm/-/commit/a7cc9516751d6c5afe35da0628083879cb52f1c0 Git commit 748828c3dbeae182d50de46b8fb7cb9c1076aaa0 by GitHub (on behalf of dmaclach) on 03/08/2026 at 07:22.. [clang][ast][objc] Implement getNameForDiagnostic for ObjC{Method,Property}Decl (#213030) This overrides `getNameForDiagnostic` to provide a qualified name representation for Objective-C methods and properties in diagnostics. When qualified is true, it formats them using the standard Objective-C syntax, such as `-[Class selector]` or `+[Class property]`. Previously these would be `Class::selector` or `Class::property`. If qualified is false, it falls back to printName. Note that I avoided modifying `NamedDecl::getQualifiedNameAsString()` or `printQualifiedName()` which will continue to (unfortunately) return `Class::method`, but this is intentional to attempt to avoid any breakage downstream due to output changing. https://invent.kde.org/qt/clang/llvm/-/commit/748828c3dbeae182d50de46b8fb7cb9c1076aaa0 Git commit 3be1dff0910dc71df932380c9091a10a54ca9fe0 by GitHub (on behalf of Med Ismail Bennani) on 03/08/2026 at 07:22.. [lldb] Skip flaky test_circular_dependency_evaluate_expression_in_get_frame (#213610) This provider's identity-forwarding pattern intermittently hits a known frame-identity-aliasing bug in ScriptedFrameProvider::GetFrameAtIndex, tracked in https://github.com/llvm/llvm-project/pull/208992. https://invent.kde.org/qt/clang/llvm/-/commit/3be1dff0910dc71df932380c9091a10a54ca9fe0 Git commit 7dae1728fbedee21bd206b7639600b268c0f1a76 by GitHub (on behalf of dsiroky) on 03/08/2026 at 07:24.. [clang-tidy] ignore uninitialized std::array in member init (#98134) cppcoreguidelines-pro-type-member-init check has an option IgnoreArrays for ignoring uninitialized C arrays. This patch adds support for C++ std::array as well. Co-authored-by: David Siroky <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/7dae1728fbedee21bd206b7639600b268c0f1a76 Git commit 00312bb11db4b0d267309e031e3059e504a7f0bd by GitHub (on behalf of LiqinWeng) on 03/08/2026 at 07:34.. [RISCV][SMT] Add SpacemiT-x100 vector sched info (#210597) https://invent.kde.org/qt/clang/llvm/-/commit/00312bb11db4b0d267309e031e3059e504a7f0bd Git commit faee1de64358ad02661da6b469dab6c3dade475e by GitHub (on behalf of Balázs Kéri) on 03/08/2026 at 07:57.. [clang][analyzer] Improved message of CallAndMessageChecker at calls with uninitialized argument (#211038) https://invent.kde.org/qt/clang/llvm/-/commit/faee1de64358ad02661da6b469dab6c3dade475e Git commit 2354dce21ab107d0350cea741923bcffbeb14d91 by GitHub (on behalf of Ashutosh Nema) on 03/08/2026 at 08:02.. [Transforms][Utils] Add LoopSplitUtils for iteration-space loop splitting (#205995) Introduce LoopSplitUtils, a utility that splits a counted loop into a chain of per-partition sub-loops covering contiguous slices of the original iteration space. Given a loop and a list of partition ranges, it clones the body per partition, guards each with an entry check that skips empty partitions, clamps each latch to its slice, and rebuilds SSA for loop-carried and live-out values so the result is behaviour-preserving. Key properties: - Supports ascending (+1) and descending (-1) unit-step inductions, in both signed and unsigned iteration orderings, with direction-aware guard/latch predicates and end clamps. - Reuses the original loop for partition 0 and clones the rest, exposing per-partition value maps via getPartitionValue()/getPartitionValueMap(). - Lets callers drop the entry guard for a partition proven non-empty via avoidPartitionGuard(); provably-empty partitions are always skipped. - Patches the dominator tree and LoopInfo incrementally rather than rebuilding them. How to use: LoopSplitUtils LSU(L, LI, SE, DT); if (!LSU.isLegal()) // counted, bottom-tested, LCSSA, unit step return false; // Tile the iteration space in order; e.g. split [Start, End] at K: LSU.addPartition(Start, K - 1); // partition 0: [Start, K-1] LSU.addPartition(K, End); // partition 1: [K, End] LSU.split(); // After split(), query a cloned value in a given partition: Value *V1 = LSU.getPartitionValue(Orig, /*PartitionIndex=*/1); A new test pass, loop-split-test (opt -passes=loop-split-test with -loop-split-points=...), drives the utility for testing. Adds lit tests covering basic/multiple/four-partition splits, descending loops, reductions, empty-leading partitions, optional guards, and the per-partition value map. https://invent.kde.org/qt/clang/llvm/-/commit/2354dce21ab107d0350cea741923bcffbeb14d91 Git commit dda7cb5354cad9507bedbfd44d3fdc4c3e956d63 by GitHub (on behalf of Brad Smith) on 03/08/2026 at 08:17.. [Driver][Hurd] Remove llvm_unreachable (#171077) Remove the llvm_unreachable from getDynamicLinker(). The code path is reachable. In the case of an unsupported architecture we're not worrying about trying to actually determine the dynamic linker, and I don't think it makes sense for the Driver to crash. Pointed out by bug report #64194 --------- Co-authored-by: Shivam Gupta <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/dda7cb5354cad9507bedbfd44d3fdc4c3e956d63 Git commit a9ebf2cdff376a74bfb05ecc58386f7c54a4c532 by GitHub (on behalf of Ramkumar Ramachandra) on 03/08/2026 at 08:17.. [LV] Add iv_outside_user ptr-ind variant test (#213263) There was previously a doubt about whether the integer variant of the test should use wrap-flags on the latch exit value, which motivates us to add coverage for the ptr variant. https://invent.kde.org/qt/clang/llvm/-/commit/a9ebf2cdff376a74bfb05ecc58386f7c54a4c532 Git commit c99e6752b9f9e1867af88c07ee44f837bc6e4311 by GitHub (on behalf of Ties Stuij) on 03/08/2026 at 08:35.. [ARM][MVE] Match canonical saturating negation patterns (#213085) InstCombine pull request https://github.com/llvm/llvm-project/pull/194519 canonicalized the saturating negation idiom to an llvm.ssub.sat operation. For the ARM backend we only recognized the original select and subtract pattern, causing vector absolute values to expand to VQSUB plus a compare and select instead of VQABS. In this patch we teach the VQABS and VQNEG patterns to recognize this ssub.sat form. https://invent.kde.org/qt/clang/llvm/-/commit/c99e6752b9f9e1867af88c07ee44f837bc6e4311 Git commit 58862f1adfc9690ddcda8cded008bc0ecda54859 by GitHub (on behalf of Berke Ates) on 03/08/2026 at 08:36.. [MLIR][Arith] Fix BitcastOp fold crashing on unhandled constant attributes (#212483) `BitcastOp::fold` assumed any non-poison scalar operand attribute is a `FloatAttr` or `IntegerAttr` and hard-casted it. Constant attributes from other dialects, e.g. the `LLVM::UndefAttr` produced by `llvm.mlir.undef`'s fold, hit the cast assertion. This crashed SCCP on IR where `llvm.mlir.undef` feeds `arith.bitcast`. Bail out on attributes and result types the fold does not handle. https://invent.kde.org/qt/clang/llvm/-/commit/58862f1adfc9690ddcda8cded008bc0ecda54859 Git commit b5d93cd7773b203e3523f36cf1b63c16f23c921b by GitHub (on behalf of Pierre van Houtryve) on 03/08/2026 at 08:38.. [clang][AMDGPU] Clean-up handling of named barrier type (#207687) - Allow the type in struct/classes in very limited circumstances. The goal is to enable creating trivial wrappers around the named barrier variable, but ensure we can't get into situations where things would get awkward. Currently this means we only allow the named barrier in RecordDecls with exactly 1 field, that have no base class, and are not inherited. - Use a `amdgpu_barrier` LangAS for this type that currently maps to the local AS. This allows easy switching to the barrier AS in a future patch. https://invent.kde.org/qt/clang/llvm/-/commit/b5d93cd7773b203e3523f36cf1b63c16f23c921b Git commit 1b39f1324b6ddc396f9e2b08cf4a800e337f446d by pvanhout on 03/08/2026 at 08:40.. [RFC][AMDGPU] Add BARRIER address space Add a new BARRIER address space that is used for global variables that are used to represent the barrier IDs in GFX12.5. These barrier addresses just have values corresponding 1-1 to barrier IDs. They are still implemented on top of LDS, but the offsetting happens during an addrspacecast to generic, not whenever the barrier GV is used. The motivation for this is to make the relation between LDS and barrier GVs explicit in the compiler. It does add a bit more complexity, but that complexity was already there, just hidden by pretending barrier GVs were actual LDS. https://invent.kde.org/qt/clang/llvm/-/commit/1b39f1324b6ddc396f9e2b08cf4a800e337f446d Git commit a6b68b15bb7959092cef779cf09bf0cc5dc5d26f by pvanhout on 03/08/2026 at 08:40.. Comments https://invent.kde.org/qt/clang/llvm/-/commit/a6b68b15bb7959092cef779cf09bf0cc5dc5d26f Git commit f78ad7d210eb6bcc019986f9b15f1e8d78b7ccca by pvanhout on 03/08/2026 at 08:40.. Add DL auto-upgrade https://invent.kde.org/qt/clang/llvm/-/commit/f78ad7d210eb6bcc019986f9b15f1e8d78b7ccca Git commit cc77354723e7cc295b5bb4b16b743afd095fca39 by pvanhout on 03/08/2026 at 08:40.. comments https://invent.kde.org/qt/clang/llvm/-/commit/cc77354723e7cc295b5bb4b16b743afd095fca39 Git commit 9b8c3b1b487479b2ea56a8b9ec8eec9a98477814 by pvanhout on 03/08/2026 at 08:40.. Add reserved AS to autoupgrade https://invent.kde.org/qt/clang/llvm/-/commit/9b8c3b1b487479b2ea56a8b9ec8eec9a98477814 Git commit 82714f85b2644bcbc79ff1424cb7ef6c70518b57 by pvanhout on 03/08/2026 at 08:40.. Fix Autoupgrade https://invent.kde.org/qt/clang/llvm/-/commit/82714f85b2644bcbc79ff1424cb7ef6c70518b57 Git commit a9089a285445d23518e436ef2eb1abaeac55d4c1 by pvanhout on 03/08/2026 at 08:40.. Rebase + comments https://invent.kde.org/qt/clang/llvm/-/commit/a9089a285445d23518e436ef2eb1abaeac55d4c1 Git commit 7b340b122f27e46a0ebbe6808249afa2b9b1d330 by pvanhout on 03/08/2026 at 08:40.. [AMDGPU] Add synthetic apertures and use them for barriers Define what a synthetic aperture is, and adjust the barrier AS to use this new system. This makes the barrier AS even safer to use as now we can use all 32 bits of it without ever risking hitting a valid address of any kind (LDS or outside LDS). https://invent.kde.org/qt/clang/llvm/-/commit/7b340b122f27e46a0ebbe6808249afa2b9b1d330 Git commit ee672651dfa63a4dfbd7fde3e5e79b883fac0e99 by pvanhout on 03/08/2026 at 08:40.. Update docs https://invent.kde.org/qt/clang/llvm/-/commit/ee672651dfa63a4dfbd7fde3e5e79b883fac0e99 Git commit 21e62e0be6518a51b057f880cd3fb3bbc4086669 by pvanhout on 03/08/2026 at 08:40.. Comments https://invent.kde.org/qt/clang/llvm/-/commit/21e62e0be6518a51b057f880cd3fb3bbc4086669 Git commit 7d33b5624630b7baf09bd62729ea3eecfe6b301a by pvanhout on 03/08/2026 at 08:40.. Comments https://invent.kde.org/qt/clang/llvm/-/commit/7d33b5624630b7baf09bd62729ea3eecfe6b301a