[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/arsenm/fcmp-generic-tristate-op'. Changed from 2ab8e287f15812147cd97e519604d820d5d46bf1 to c2e46187ace88fba2a043890a045e9f681ed2a7b 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 46dc7835db2919e82788930efaf37448aec47e0d by Matt Arsenault on 03/08/2026 at 06:56.. RuntimeLibcalls: Split soft-float three-way compares into distinct libcall kinds Soft-float compares come in two flavors. ARM AEABI (__aeabi_dcmpeq) and VFP (__eqdf2vfp) return a simple 0/1 boolean and use the existing O*_F* / UO_F* libcalls. The libgcc/compiler-rt helpers (__eqdf2, __ltdf2, ...) return a three-way -1/0/1, which the legalizer needs to insert the appropriate compare against. The three-way helpers previously masqueraded as O*_F* implementations, with the condition code recovered from a hardcoded switch. Model them instead as distinct operations. The legalizer then reasons about how to make use of the call result based on which flavor of operation is available, rather than special casing what the specific implementation is. This leaves the mspabi cases for a later cleanup, because it's 3-way usage is slightly different from the ARM case. Co-authored-by: Claude (Opus 4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/46dc7835db2919e82788930efaf37448aec47e0d Git commit c2e46187ace88fba2a043890a045e9f681ed2a7b by Matt Arsenault on 03/08/2026 at 06:56.. RuntimeLibcalls: Add generic FCMP3_F* three-way compare for single-symbol ABIs MSP430's __mspabi_cmpd/__mspabi_cmpf are one three-way compare symbol serving every predicate, previously modeled as six suffixed impls each. Replace them with a single generic operator FCMP3_*, and give softenSetCCOperands a 3rd lowering option. After the boolean O*_F* and the per-predicate FCMP3_<pred>_F* helpers, use the generic FCMP3_F* helper tested with the predicate's condition code. Also opt __nedf2 out of the MSP430 default set: it was the only libgcc F64 compare not already opted out, so it would otherwise provide FCMP3_UNE_F64 and win over __mspabi_cmpd for not-equal. Co-authored-by: Claude (Opus 4.8) <[email protected]> https://invent.kde.org/qt/clang/llvm/-/commit/c2e46187ace88fba2a043890a045e9f681ed2a7b