[llvm] [AMDGPU] Add scheduling stage to rewrite MFMA from VGPR to AGPR (PR #170335)

Shilei Tian via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 2 11:06:01 PST 2025


================
@@ -102,6 +102,33 @@ struct GCNRegPressure {
                                                 DynamicVGPRBlockSize));
   }
 
+  unsigned getVGPRSpills(MachineFunction &MF) {
+    const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>();
+    if (!ST.hasGFX90AInsts())
+      return 0;
+
+    auto MaxVectorRegs = ST.getMaxNumVectorRegs(MF.getFunction());
+    unsigned ArchVGPRThreshold = MaxVectorRegs.first;
+    unsigned AGPRThreshold = MaxVectorRegs.second;
+
+    unsigned ArchPressure = getArchVGPRNum();
+    unsigned AGPRPressure = getAGPRNum();
+
+    unsigned ArchSpill = ArchPressure > ArchVGPRThreshold
+                             ? (ArchPressure - ArchVGPRThreshold)
+                             : 0;
+    unsigned AGPRSpill =
+        AGPRPressure > AGPRThreshold ? (AGPRPressure - AGPRThreshold) : 0;
+
+    unsigned CombinedThreshold = ST.getMaxNumVGPRs(MF);
+    unsigned UnifiedPressure = getVGPRNum(true);
----------------
shiltian wrote:

```suggestion
    unsigned UnifiedPressure = getVGPRNum(/*UnifiedVGPRFile=*/true);
```

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


More information about the llvm-commits mailing list