[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/mgcarrasco/nsdi-debug-func-def'. Changed from 09da485d3bb4135fb11cdaffbeca827694001f77 to cdad472b1c2d64a4a9eb1a230149bbeeb9665f1e 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 ba1c26cf9f4826c9e82d43859c91fab9facf689f by GitHub (on behalf of Akshat Dalal) on 03/08/2026 at 08:44.. [X86] Fix missing CFI after the Swift async context push (#202570) The Swift async prologue pushes the context slot (pushq %r14 / $0) but doesn't touch the CFA until the later .cfi_def_cfa_register %rbp. So the CFA still describes the stack from before the push and stays stale all the way through the leaq and the subq. If something unwinds in that window (debugger, profiler, signal) it reads the wrong slot. Normal execution is fine. FIX: account for the push with .cfi_adjust_cfa_offset 8, then switch to an %rbp-relative CFA (.cfi_def_cfa %rbp, 16) right after the leaq and before the subq, so the rule is correct before rsp moves again. Adds swift-async-cfi-prologue.ll (directives + .eh_frame rows, plus a locals case for the subq) and updates swift-async.ll. https://invent.kde.org/qt/clang/llvm/-/commit/ba1c26cf9f4826c9e82d43859c91fab9facf689f Git commit 095ff52bd7281046925bf7146c17d0cae68fb6ed by GitHub (on behalf of Med Ismail Bennani) on 03/08/2026 at 09:06.. [lldb] Fix test_case_insensitivity's register value for canonical/PAC constraints (#213605) This addresses a test failure introduced in 4f6cf2c2072ccf5780ac30bf69ebf99b788dbd52. `0x1122334455667788` is a non-canonical address on x86_64 (fails to write to rsp) and gets its non-addressing bits masked off on read for pc/lr/sp/fp on Darwin AArch64, so it doesn't round-trip on either. Zero the top 20 bits to stay clear of both. https://invent.kde.org/qt/clang/llvm/-/commit/095ff52bd7281046925bf7146c17d0cae68fb6ed Git commit bd7433bd275cacc7493892e5bfbdb76de0f18cd4 by GitHub (on behalf of Gábor Horváth) on 03/08/2026 at 09:07.. [clang][LifetimeSafety] Fix unnamed TimeTraceScope in computePersistentOrigins (#213521) The TimeTraceScope was constructed as a temporary and destroyed immediately, so the prepass was reported as taking ~0. It actually accounts for ~14% of LoanPropagation in some cases. Co-authored-by: Gabor Horvath <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/bd7433bd275cacc7493892e5bfbdb76de0f18cd4 Git commit 1fe8f95f24adbf26943e48f8c2e8419d4010e599 by GitHub (on behalf of David Spickett) on 03/08/2026 at 09:10.. Revert "Disable this test on Darwin to give the author a chance to fix it." (#213624) Reverts llvm/llvm-project#213388 #213605 fixes the test. https://invent.kde.org/qt/clang/llvm/-/commit/1fe8f95f24adbf26943e48f8c2e8419d4010e599 Git commit 667bc9df31a8f5cc833b3e9bee4dbdc0463fc4b1 by GitHub (on behalf of Arseniy Obolenskiy) on 03/08/2026 at 09:23.. [mlir][SPIR-V] Restrict GroupNonUniform ops to Subgroup scope (#213087) spirv-val now limits execution scope for GroupNonUniform* ops to Subgroup, except OpGroupNonUniformRotateKHR which still allows Workgroup (see https://github.com/KhronosGroup/SPIRV-Tools/pull/6811). Tighten the ODS trait accordingly and stop lowering GPU non-uniform reductions to a Workgroup scope op Follow-up to #212928 https://invent.kde.org/qt/clang/llvm/-/commit/667bc9df31a8f5cc833b3e9bee4dbdc0463fc4b1 Git commit 66173168efff1085a785b9908296be8146a4399c by GitHub (on behalf of Matt Arsenault) on 03/08/2026 at 09:27.. X86: Defend against regression from SimplifyDemandedVectorElts load support (#213611) It doesn't appear possible to test this independently. Co-authored-by: Claude (Opus 4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/66173168efff1085a785b9908296be8146a4399c Git commit 536acc23e473855f900e0ef65fd1a3fc254264b0 by GitHub (on behalf of Lang Hames) on 03/08/2026 at 09:31.. [ORC] Fix COFFAutoImportGeneratorTest on Darwin. (#213616) Add linker-level mangling prefix for lookups on Darwin. These should fix the build failures associated with PR203914 on Darwin, e.g. https://lab.llvm.org/buildbot/#/builders/23/builds/21523 https://invent.kde.org/qt/clang/llvm/-/commit/536acc23e473855f900e0ef65fd1a3fc254264b0 Git commit 9baf14f77a632e6863c599228213620e0362c321 by GitHub (on behalf of Ömer Sinan Ağacan) on 03/08/2026 at 09:32.. [TLI] Update `getWCharSize` documentation (NFC) (#213622) `return 0` part of `getWCharSize` was added in cc603ee3d563 but then removed in 5a88dffc40d2. Update the documentation as it no longer returns 0 when the size is unknown (instead returns the default). https://invent.kde.org/qt/clang/llvm/-/commit/9baf14f77a632e6863c599228213620e0362c321 Git commit 2fe9fc90780d65935e075fecbffd3d5103c83838 by GitHub (on behalf of Krish Gupta) on 03/08/2026 at 09:38.. [mlir][bufferization] Handle arith.select-based deallocs in static memory planner (#209106) The static memory planner currently skips any allocation that doesn't have a direct `memref.dealloc` user. This is overly conservative, after running `ownership-based-buffer-deallocation`, it's common to see patterns like: `%2 = arith.select %c, %0, %1 : memref<1024xf32>` `memref.dealloc %2 : memref<1024xf32>` where both `%0` and `%1` get skipped with `++numSkipNoDealloc` even though their lifetimes are well-defined. This patch teaches `collectCandidates` to follow `arith.select` chains when looking for potential deallocs. We traverse the use-def graph forward from each alloc, collecting any `memref.dealloc` ops reachable through select results. Since a single select-based dealloc can conditionally free one of several allocs, we enforce a group constraint: all allocs that share a dealloc via a select must either all go into the arena or all be skipped. Without this, we could end up with a `memref.view` (an arena slice) and a raw alloc being fed into the same select, making the resulting dealloc invalid. The group constraint is computed with a simple fixpoint iteration , if any member of a group is ineligible, the whole group is dropped. The lifetime indices (`timeStart`/`timeEnd`) in `buildAllocInfos` are also fixed: the old code did one block scan per candidate (O(n×m)). This replaces it with a single pass upfront using a `DenseMap`, and sets `timeEnd` conservatively to the latest dealloc index across all potential deallocs for an alloc. Tests added for: - Single alloc freed via a self-select dealloc - Two allocs sharing one select-based dealloc (group constraint active) - The two-select two-dealloc pattern from the design discussion https://invent.kde.org/qt/clang/llvm/-/commit/2fe9fc90780d65935e075fecbffd3d5103c83838 Git commit 80df471b75d0736a8bc5d30f6e483bb0de302c7e by GitHub (on behalf of Pengcheng Wang) on 03/08/2026 at 09:49.. Reland [MachineLICM] Use `RegisterClassInfo::getRegPressureSetLimit` (#213584) This relands #211715 which was reverted because of some failures in experimental targets and one AMDGPU test `diverged-entry-basic.ll`. Below is the original commit message. ---- This recommits #119826, which taught `MachineLICM` to use `RegisterClassInfo` when computing register pressure limits so reserved registers are accounted for (#118787). The original change was reverted by eeac0ff because it increased compile time by causing repeated `RegisterClassInfo` computations. This PR is based on #210826, in which `MachineRegisterClassInfo` analysis pass was added. `MachineRegisterClassInfo` is required by `MachineLICM` now, but the intervening machine passes that do not affect `RegisterClassInfo` now preserve it, so the analysis is reused instead of recomputed. Assisted-by: TRAE CLI (GPT-5.5) https://invent.kde.org/qt/clang/llvm/-/commit/80df471b75d0736a8bc5d30f6e483bb0de302c7e Git commit fb77712fd1dd911330bd432d1fd9313081b40c59 by GitHub (on behalf of Arseniy Obolenskiy) on 03/08/2026 at 09:50.. [clang][AMDGPU] Widen ballot for read_exec_lo/hi to wavefront size (#212813) GlobalISel cannot select a ballot narrower than the wavefront width, since it can't represent one bit per lane Widen the ballot to the wave size and narrow the result afterwards This is a prerequisite for relanding https://github.com/llvm/llvm-project/pull/211493 (reverted in https://github.com/llvm/llvm-project/pull/212628 to unblock buildbot) to prevent device libs side failures --------- Co-authored-by: Matt Arsenault <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/fb77712fd1dd911330bd432d1fd9313081b40c59 Git commit 5daadaa0264a350c3faa4dd0759fec7ef5fe8a75 by GitHub (on behalf of Timur Golubovich) on 03/08/2026 at 09:59.. [X86] Add PSEUDO_FMIN/PSEUDO_FMAX to canCombineAsMaskOperation (#213475) Add FP min/max opcodes to the list of operations that can be folded into write-masked instructions. This allows commuteSelect to recognize these operations and invert the setcc condition to enable ISel to match fused vminps/vmaxps {%k} patterns. https://invent.kde.org/qt/clang/llvm/-/commit/5daadaa0264a350c3faa4dd0759fec7ef5fe8a75 Git commit 8f1efc26e47f6a3c7b2c623b5de44b99529e3a02 by GitHub (on behalf of Ashutosh Nema) on 03/08/2026 at 10:25.. [Transforms][Utils] Preserve branch weights in LoopSplitUtils (#213626) Carry the original latch's branch weights onto the clamped latch, and mark the newly created partition-guard branches as having unknown weights so profile-tracking passes are not misled. https://invent.kde.org/qt/clang/llvm/-/commit/8f1efc26e47f6a3c7b2c623b5de44b99529e3a02 Git commit b2cca30e126db355314677852f2b6139be1c2f3b by GitHub (on behalf of Pavel Labath) on 03/08/2026 at 10:31.. [libc] Add if_nameindex and if_freenameindex as an experimental entrypoint (#208438) This is a fairly complex function, so this patch implements bare minimum needed to demonstrate the overall direction. The functionality is implemented by communicating with the linux kernel over a netlink socket, and the complexity comes from parsing the messages. In this patch, parsing stops at the first interface, and we don't handle multiple messages or deduplication resulting from restarted dumps. Some notable implementation choices are: - using a single allocation (including both the interface vector and the strings it points to). This makes deallocation fast, reduces heap fragmentation, and doesn't make the final code much more complex since we still need auxiliary data structures for deduplication. - using linux kernel headers for all the netlink structures. I think this is fine as we're not exposing that to the user. - while this information is available via /sys, that would mean we require /sys to be mounted, and it wouldn't make the code much simpler. This also matches other libc implementations. Testing is a completely separate story, and the main source of complexity of this patch. To make the code testable without requiring root or live interfaces, the core function (`net::if_nameindex<Policy>()`) is templated on a syscall policy class (`NetworkSyscallPolicy`). The production entrypoint uses `DefaultNetworkSyscallPolicy` forwarding directly to syscall wrappers (`socket`, `sendto`, `recvfrom`, `close`), while the unit tests use `FakeNetworkSyscallPolicy` to feed crafted netlink buffers from memory and verify `sendto` request formation. The fake policy is set up such that one can program the mock to return certain values, and validate arguments. It does not resemble the googletest functionality (mocks) very closely, but I've tried to put it in a form where it is possible to morph it into that -- if that's the direction we desire to go. While doing this, I ran into the limitations of various container classes (mainly the inability to handle non-trivial types). To avoid growing the scope of this even further, I worked around those limitations locally, and left TODOs which I intend to resolve in follow-ups. The only thing I couldn't avoid is the addition of cpp::expected default constructor (which is actually a consequence of how FixedVector constructs elements). However, this is a simple addition and it is consistent with the STL class it is emulating. The patch also add the [AP]F_NETLINK constants needed for creating netlink sockets. https://invent.kde.org/qt/clang/llvm/-/commit/b2cca30e126db355314677852f2b6139be1c2f3b Git commit 1674a1c6da083c2fdfe7e3539b8bf647989066b5 by GitHub (on behalf of Spencer Bryngelson) on 03/08/2026 at 10:47.. [runtimes][cmake] Probe Fortran intrinsic modules for the target triple (#211137) Fixes #211134. `check_fortran_builtins_available()` probes for Fortran intrinsic modules without passing the target triple, in both branches: the `-print-file-name=iso_c_binding.mod` query runs the driver with no `--target`, and the `check_fortran_source_compiles()` fallback uses `try_compile()`, which does not inherit `CMAKE_Fortran_COMPILER_TARGET`. Flang's intrinsic modules are built per-target by flang-rt. When a runtime is configured for a GPU target without flang-rt in its runtime list, both probes test the host and succeed, so `RUNTIMES_FORTRAN_MODULES` is enabled for a target that cannot support it. `LIBOMP_FORTRAN_MODULES` inherits that and the failure is deferred to a cascade of BIND(C) diagnostics compiling `omp_lib.F90`, all stemming from one missing-module error. Pass the triple to both probes so the existing graceful-degradation path is reached instead. Uses `CMAKE_Fortran_COMPILE_OPTIONS_TARGET` rather than a hard-coded `--target=`. This file is also used with non-Flang compilers (`:229`, and `openmp/module/CMakeLists.txt:25` special-cases GNU), and the `check_fortran_source_compiles` branch is the live path for every compiler on CMake >= 3.24. gfortran rejects `--target=` outright, so hard-coding it would silently disable Fortran modules for gfortran users who get them today. `CMAKE_Fortran_COMPILE_OPTIONS_TARGET` is `--target=` for Flang and empty for GNU. Tested: | compiler | target | result | |---|---|---| | gfortran | `x86_64-unknown-linux-gnu` | modules ON, unchanged | | flang | `x86_64-unknown-linux-gnu` | modules ON, unchanged | | flang | `amdgcn-amd-amdhsa` | modules OFF, correctly disabled | | flang | `amdgpu-amd-amdhsa` | modules OFF, correctly disabled | Also built four full configurations: amdgcn with `openmp` unpatched fails as described; patched, it builds clean and produces `libompdevice.a` with no workaround; amdgcn with `openmp;flang-rt` (the `FlangOffload.cmake` recipe) still builds `omp_lib.mod` for the GPU triple, so the intentional GPU module support is preserved; and the x86_64 host build is unchanged. No test: neither `runtimes/` nor `openmp/` has CMake-configuration test infrastructure, and this is configure-time logic with no lit surface. This affects performance-critical applications on large AMD GPU supercomputers, including [MFC](https://github.com/MFlowCode/MFC). All numbers above come from the validated reproducers included with this report and are independently reproducible; they stand on their own. This was found and root-caused with the assistance of AI tools. https://invent.kde.org/qt/clang/llvm/-/commit/1674a1c6da083c2fdfe7e3539b8bf647989066b5 Git commit 750b9d9e7ac0a98b2cc107eec8a9d6eb442711a5 by GitHub (on behalf of Ebuka Ezike) on 03/08/2026 at 10:49.. [lldb][lldb-server] Update the expected gdbserver's architecture (#210946) gdbserver recognises 'x86_64' arch as 'i386:x86-64', this prevents gdb (binary) from connecting to lldb-server since lldb-server reports architecture as 'x86_64'. we already do something similar when connecting a server to lldb. This does not affect lldb -> lldb-server since we use qHostInfo to get that information. https://invent.kde.org/qt/clang/llvm/-/commit/750b9d9e7ac0a98b2cc107eec8a9d6eb442711a5 Git commit 94a2f2906f132501f67eaf639a31fe54039d6da2 by Manuel Carrasco on 03/08/2026 at 10:59.. Implement support for NSDI DebugFunction opcode. https://invent.kde.org/qt/clang/llvm/-/commit/94a2f2906f132501f67eaf639a31fe54039d6da2 Git commit d901d0c3256876b6b685589eaa8a342a77cb3599 by Manuel Carrasco on 03/08/2026 at 10:59.. Simplify loops. https://invent.kde.org/qt/clang/llvm/-/commit/d901d0c3256876b6b685589eaa8a342a77cb3599 Git commit 01462125bcf37169af086ccab3a0b5073e09617e by Manuel Carrasco on 03/08/2026 at 10:59.. Implement support for NSDI DebugFunction opcode. https://invent.kde.org/qt/clang/llvm/-/commit/01462125bcf37169af086ccab3a0b5073e09617e Git commit b16f12fe9602a174af6fb4c92c8b4a39e376b37e by Manuel Carrasco on 03/08/2026 at 10:59.. Simplify loops. https://invent.kde.org/qt/clang/llvm/-/commit/b16f12fe9602a174af6fb4c92c8b4a39e376b37e Git commit ade3084022875c2f63839e8b0f2722efd6713884 by Manuel Carrasco on 03/08/2026 at 10:59.. Implement support for NSDI DebugFunction opcode. https://invent.kde.org/qt/clang/llvm/-/commit/ade3084022875c2f63839e8b0f2722efd6713884 Git commit a543d586a928a812a889b2ac10400946a614e9bf by Manuel Carrasco on 03/08/2026 at 10:59.. Implement support for NSDI DebugFunctionDefinition. https://invent.kde.org/qt/clang/llvm/-/commit/a543d586a928a812a889b2ac10400946a614e9bf Git commit 0878f72e9418ca11fbdf584472917383d9576afd by Manuel Carrasco on 03/08/2026 at 10:59.. Keep original comment. https://invent.kde.org/qt/clang/llvm/-/commit/0878f72e9418ca11fbdf584472917383d9576afd Git commit 322607ca8357eabca0d24e23195b591b2d23832e by Manuel Carrasco on 03/08/2026 at 10:59.. [SPIRV] Drive DebugFunctionDefinition placement via begin/endInstruction Replace the SPIRV-specific notifyMachineInstructionEmitted() callback with DebugHandlerBase::beginInstruction()/endInstruction(). Keep notifyEntryLabelEmitted() for the synthesized entry OpLabel, which has no MachineInstr. https://invent.kde.org/qt/clang/llvm/-/commit/322607ca8357eabca0d24e23195b591b2d23832e Git commit fb8a7d5697e41720a41b5f11c86a73a89a911753 by Manuel Carrasco on 03/08/2026 at 10:59.. Fix path check. https://invent.kde.org/qt/clang/llvm/-/commit/fb8a7d5697e41720a41b5f11c86a73a89a911753 Git commit b94cdf1046c36557a13e4c00009d87afcfb231a1 by Manuel Carrasco on 03/08/2026 at 10:59.. Remove CachedExtInstSetReg. https://invent.kde.org/qt/clang/llvm/-/commit/b94cdf1046c36557a13e4c00009d87afcfb231a1 Git commit becba347375056f537e4a4b5a15019316a3e8b4d by Manuel Carrasco on 03/08/2026 at 10:59.. Change signature. https://invent.kde.org/qt/clang/llvm/-/commit/becba347375056f537e4a4b5a15019316a3e8b4d Git commit f2541dea6002c4fd1c13bc26d87b46412888f818 by Manuel Carrasco on 03/08/2026 at 10:59.. Improve test. https://invent.kde.org/qt/clang/llvm/-/commit/f2541dea6002c4fd1c13bc26d87b46412888f818 Git commit f07070a0909e6ba00dcdf519b442c7ccf33e69eb by Manuel Carrasco on 03/08/2026 at 10:59.. Fix rebase. https://invent.kde.org/qt/clang/llvm/-/commit/f07070a0909e6ba00dcdf519b442c7ccf33e69eb Git commit 0dad4a04c6378e42a4b1641eaf20d571dd6462cc by Manuel Carrasco on 03/08/2026 at 10:59.. Remove unused parameter. https://invent.kde.org/qt/clang/llvm/-/commit/0dad4a04c6378e42a4b1641eaf20d571dd6462cc Git commit ee20b2c4f564181423b71a2ea88fb6330c16a345 by Manuel Carrasco on 03/08/2026 at 10:59.. Improve tests. https://invent.kde.org/qt/clang/llvm/-/commit/ee20b2c4f564181423b71a2ea88fb6330c16a345 Git commit cdad472b1c2d64a4a9eb1a230149bbeeb9665f1e by Manuel Carrasco on 03/08/2026 at 10:59.. Rename function. https://invent.kde.org/qt/clang/llvm/-/commit/cdad472b1c2d64a4a9eb1a230149bbeeb9665f1e