[llvm] 5b2fee8 - [AMDGPU] NFC: Add flag to disable clustered low occupancy phase (#73025)

via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 21 12:43:18 PST 2023


Author: Jeffrey Byrnes
Date: 2023-11-21T12:43:12-08:00
New Revision: 5b2fee84189beec48a4f935afda831e1ebdcce1e

URL: https://github.com/llvm/llvm-project/commit/5b2fee84189beec48a4f935afda831e1ebdcce1e
DIFF: https://github.com/llvm/llvm-project/commit/5b2fee84189beec48a4f935afda831e1ebdcce1e.diff

LOG: [AMDGPU] NFC: Add flag to disable clustered low occupancy phase (#73025)

This will help users analyze whether high register usage is coming from
inability of scheduler to reduce RP, or from sacrificing good RP to
improve ILP.

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp b/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
index c3d60b635d3240a..6c044cae0d17f5b 100644
--- a/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+++ b/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
@@ -37,6 +37,13 @@ static cl::opt<bool> DisableUnclusterHighRP(
     cl::desc("Disable unclustered high register pressure "
              "reduction scheduling stage."),
     cl::init(false));
+
+static cl::opt<bool> DisableClusteredLowOccupancy(
+    "amdgpu-disable-clustered-low-occupancy-reschedule", cl::Hidden,
+    cl::desc("Disable clustered low occupancy "
+             "rescheduling for ILP scheduling stage."),
+    cl::init(false));
+
 static cl::opt<unsigned> ScheduleMetricBias(
     "amdgpu-schedule-metric-bias", cl::Hidden,
     cl::desc(
@@ -726,6 +733,9 @@ bool UnclusteredHighRPStage::initGCNSchedStage() {
 }
 
 bool ClusteredLowOccStage::initGCNSchedStage() {
+  if (DisableClusteredLowOccupancy)
+    return false;
+
   if (!GCNSchedStage::initGCNSchedStage())
     return false;
 


        


More information about the llvm-commits mailing list