[llvm] [AMDGPU][CoExecSched] Add free-proximity scheduling heuristic (PR #225334)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 22 02:04:43 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.h --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
index 6e4b271a6..23e411715 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCoExecSchedStrategy.cpp
@@ -546,9 +546,8 @@ int HardwareUnitInfo::compareRegFreeProximity(SUnit *Candidate,
   auto [CurFrees, CurMinOther] = getRegStats(Existing);
   auto [CandFrees, CandMinOther] = getRegStats(Candidate);
 
-  LLVM_DEBUG(dbgs() << "      Existing: frees=" << CurFrees
-                    << " minOther=" << CurMinOther
-                    << "  Candidate: frees=" << CandFrees
+  LLVM_DEBUG(dbgs() << "      Existing: frees=" << CurFrees << " minOther="
+                    << CurMinOther << "  Candidate: frees=" << CandFrees
                     << " minOther=" << CandMinOther << "\n");
 
   if (CandFrees > CurFrees) {
@@ -583,8 +582,8 @@ void HardwareUnitInfo::updatePrioritySUsWith(SUnit *Cand,
 
   SUnit *Existing = *PrioritySUs.begin();
   bool UseRegFree = CoexecRegFreeProximity == RegFreeProximityMode::Always ||
-      (CoexecRegFreeProximity == RegFreeProximityMode::Auto &&
-       IsCloseToRegPressureLimit);
+                    (CoexecRegFreeProximity == RegFreeProximityMode::Auto &&
+                     IsCloseToRegPressureLimit);
 
   LLVM_DEBUG(dbgs() << "    updatePrioritySUs: SU(" << Cand->NodeNum
                     << ") vs existing SU(" << Existing->NodeNum << ")"
@@ -597,8 +596,9 @@ void HardwareUnitInfo::updatePrioritySUsWith(SUnit *Cand,
     Decision = compareRegFreeProximity(Cand, Existing);
 
   LLVM_DEBUG(dbgs() << "    decision=" << Decision
-                    << (Decision > 0 ? " (candidate better)" :
-                        Decision < 0 ? " (existing better)" : " (tie)")
+                    << (Decision > 0   ? " (candidate better)"
+                        : Decision < 0 ? " (existing better)"
+                                       : " (tie)")
                     << "\n");
 
   if (Decision < 0)
@@ -844,7 +844,7 @@ void CandidateHeuristics::collectRegionSummary() {
     MachineInstr *MI = SU.getInstr();
     const InstructionFlavor Flavor = classifyFlavor(*MI, *SII);
     HWUInfo[static_cast<int>(Flavor)].insert(&SU, getHWUICyclesForSU(&SU),
-                                            IsCloseToRegPressureLimit);
+                                             IsCloseToRegPressureLimit);
     unsigned CarriedLatency = getCarriedLatency(&SU);
     if (CarriedLatency)
       CarriedLatencies[MI] = CarriedLatency;
@@ -1323,8 +1323,8 @@ void AMDGPUCoExecSchedStrategy::pickNodeFromQueue(
       VGPRPressure + MaxVGPRPressureIncFactor * MaxVGPRPressureInc >=
           VGPRExcessLimit;
   LLVM_DEBUG(dbgs() << "IsCloseToRegPressureLimit=" << IsCloseToRegPressureLimit
-                    << " (VGPR=" << VGPRPressure
-                    << " limit=" << VGPRExcessLimit << ")\n");
+                    << " (VGPR=" << VGPRPressure << " limit=" << VGPRExcessLimit
+                    << ")\n");
   Heurs.setIsCloseToRegPressureLimit(IsCloseToRegPressureLimit);
   if (IsCloseToRegPressureLimit)
     Heurs.rebuildAllPrioritySUs();

``````````

</details>


https://github.com/llvm/llvm-project/pull/225334


More information about the llvm-commits mailing list