[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/ergawy/fir-shift-type-llvm-conversion'.
Changed from 0000000000000000000000000000000000000000 to 80bc877ce42099386536773e22429a6d5edd17fc
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 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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/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-project/-/commit/a9ebf2cdff376a74bfb05ecc58386f7c54a4c532

Git commit 80bc877ce42099386536773e22429a6d5edd17fc by ergawy on 03/08/2026 at 08:30..
[flang][CodeGen] Add fir::ShiftType to LLVM type conversion

Mirrors the existing ShapeType / ShapeShiftType converters: a
`!fir.shift<N>` becomes `!llvm.struct<(i64 x N)>`.

Previously ShiftType had no conversion because `fir.shift` was assumed
to always be dead by the time FIR-to-LLVM ran (its op-level pattern is
MustBeDeadConversion). That assumption breaks when a `!fir.shift<N>`
value survives as `cf.cond_br` block-argument forwarding — e.g. when
PolymorphicOpConversion lowers `fir.select_type` in a downstream
pipeline. Without a type conversion, the block-signature conversion
fails on `!fir.shift<N>`, `CondBranchOpLowering` cannot rewrite the
predecessor, and `cf.cond_br` leaks to `translateModuleToLLVMIR`,
which then aborts with "missing LLVMTranslationDialectInterface".

Adds a `live_shift` regression to `convert-to-llvm.fir` that passes
`!fir.shift<1>` through a function argument, exercising the type
converter without needing to convert a live `fir.shift` op.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <[email protected]>
https://invent.kde.org/qt/clang/llvm-project/-/commit/80bc877ce42099386536773e22429a6d5edd17fc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.