[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/hjagasiaAMD/swp-4-rp-limit'.
Changed from ca464634c6018053cbf7f0afd8f0d680080b467f to d982be9a856be3bf508554d0684639b09ae3d2c4
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 b0fea17d4a804ac51e89afd2d552f190ff4e9dfc by Harsha Jagasia on 29/07/2026 at 21:14..
[AMDGPU] Add MachinePipeliner support for AMDGPU

Implement the target hooks to enable MachinePipeliner for AMDGPU. The
pass is off by default and can be enabled with -amdgpu-enable-pipeliner
at -O2 and above.

Only uniform, single-basic-block counted loops with a scalar (SCC)
back-edge are pipelined; loops with a divergent (VCC/EXEC) back-edge, or
containing calls or inline asm, are rejected. Code is generated by the
default modulo schedule expander (DFA, window scheduler, and MVE
expansion are disabled for AMDGPU).

Validated on gfx942 and gfx950 with Composable Kernel and Triton workloads.
https://invent.kde.org/qt/clang/llvm/-/commit/b0fea17d4a804ac51e89afd2d552f190ff4e9dfc

Git commit 3d32ea2e154f6fd7fcbaa770aaa5d4229b132712 by Harsha Jagasia on 29/07/2026 at 21:14..
[AMDGPU] Raise the MachinePipeliner MII cap via a target hook

The pipeliner rejects any loop whose minimum initiation interval (MII)
exceeds -pipeliner-max-mii, default 27. That is far too low for real
AMDGPU loops: resource-bound GEMM/attention bodies routinely have an MII
well above 27 and are dropped before scheduling even starts.

Add a PipelinerLoopInfo::getMaxMII() hook so a target can raise the cap,
and override it to 256 for AMDGPU. The generic default is unchanged, and
an explicit -pipeliner-max-mii still takes precedence.

The cap of 256 is chosen from the II distributions of two AMDGPU
workloads.

Composable Kernels:
  II range   count    pct
    0- 24     2305   36.7%
   25- 49     1681   26.8%
   50- 99     1582   25.3%
  100-149      578    9.2%
  150-299       64    1.0%

Triton:
  II range   count    pct
   96-128       19   50.0%
  128-160       11   28.9%
  160-192        2    5.3%
  192-224        2    5.3%
  224-256        4   10.5%

256 captures the bulk of both workloads while still rejecting
pathologically large loops up front.
https://invent.kde.org/qt/clang/llvm/-/commit/3d32ea2e154f6fd7fcbaa770aaa5d4229b132712

Git commit 71654dd60cf5c2ec2c3e87df8fa70b1675a9cb34 by Harsha Jagasia on 29/07/2026 at 21:14..
[MachinePipeliner] Add PipelinerLoopInfo hooks to reuse the reg-pressure detector

The generic MachinePipeliner register-pressure detector (added in #74807)
was only reachable via the global -pipeliner-register-pressure flag, which
cannot be enabled per-target, and it judges pressure against generic
per-pressure-set limits. Add two PipelinerLoopInfo hooks so a target can
reuse that detector on its own terms:

- shouldLimitRegPressure(): A target can opt the loop into the detector without
  the global flag.
- isScheduleRegPressureTooHigh(MaxSetPressure): let the target replace the
  detector's generic per-pressure-set limit check with its own verdict, or
  return nullopt to keep that check.

Both hooks default to preserving current behavior, so targets that do not
override them are unaffected.

Exercised by the AMDGPU adoption in the following commit.
https://invent.kde.org/qt/clang/llvm/-/commit/71654dd60cf5c2ec2c3e87df8fa70b1675a9cb34

Git commit d982be9a856be3bf508554d0684639b09ae3d2c4 by Harsha Jagasia on 29/07/2026 at 21:14..
[AMDGPU] Limit register pressure of pipelined loops

Opt AMDGPU into the generic MachinePipeliner register-pressure detector via
shouldLimitRegPressure(), and supply an occupancy-aware verdict in
isScheduleRegPressureTooHigh(): reject a schedule whose SGPR or VGPR/AGPR
pressure would drop the kernel below its target occupancy, or exceed a
register class's addressability cap. On gfx90a+ VGPRs and AGPRs share one
register file, so their combined footprint is bounded together. These match
the limits GCNSchedStrategy enforces.
https://invent.kde.org/qt/clang/llvm/-/commit/d982be9a856be3bf508554d0684639b09ae3d2c4
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.