[PATCH] D65288: AMDGPU: Disable the load and store cluster mutations for the schedulers

Tom Stellard via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 25 09:13:19 PDT 2019


tstellar created this revision.
tstellar added reviewers: rampitec, arsenm, nhaehnle.
Herald added subscribers: hiraditya, t-tye, tpr, dstuttard, yaxunl, wdng, jvesely, kzhuravl.
Herald added a project: LLVM.

These tend to increase register usage, and I'm not sure they provide
that much benefit now that the SILoadStoreOptimizer is run before
scheduling.

shader-db results:

SGPRS: 2395408 -> 2245808 (-6.25 %)
VGPRS: 1385652 -> 1377068 (-0.62 %)
Spilled SGPRs: 13732 -> 12147 (-11.54 %)
Spilled VGPRs: 67 -> 104 (55.22 %)
Private memory VGPRs: 5872 -> 5872 (0.00 %)
Scratch size: 6848 -> 6864 (0.23 %) dwords per thread
Code Size: 57847052 -> 58209484 (0.63 %) bytes
LDS: 132 -> 132 (0.00 %) blocks
Max Waves: 470488 -> 472363 (0.40 %)
Wait states: 0 -> 0 (0.00 %)


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65288

Files:
  llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp


Index: llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -258,8 +258,6 @@
 createGCNMaxOccupancyMachineScheduler(MachineSchedContext *C) {
   ScheduleDAGMILive *DAG =
     new GCNScheduleDAGMILive(C, make_unique<GCNMaxOccupancySchedStrategy>(C));
-  DAG->addMutation(createLoadClusterDAGMutation(DAG->TII, DAG->TRI));
-  DAG->addMutation(createStoreClusterDAGMutation(DAG->TII, DAG->TRI));
   DAG->addMutation(createAMDGPUMacroFusionDAGMutation());
   return DAG;
 }
@@ -268,8 +266,6 @@
 createIterativeGCNMaxOccupancyMachineScheduler(MachineSchedContext *C) {
   auto DAG = new GCNIterativeScheduler(C,
     GCNIterativeScheduler::SCHEDULE_LEGACYMAXOCCUPANCY);
-  DAG->addMutation(createLoadClusterDAGMutation(DAG->TII, DAG->TRI));
-  DAG->addMutation(createStoreClusterDAGMutation(DAG->TII, DAG->TRI));
   return DAG;
 }
 
@@ -282,8 +278,6 @@
 createIterativeILPMachineScheduler(MachineSchedContext *C) {
   auto DAG = new GCNIterativeScheduler(C,
     GCNIterativeScheduler::SCHEDULE_ILP);
-  DAG->addMutation(createLoadClusterDAGMutation(DAG->TII, DAG->TRI));
-  DAG->addMutation(createStoreClusterDAGMutation(DAG->TII, DAG->TRI));
   DAG->addMutation(createAMDGPUMacroFusionDAGMutation());
   return DAG;
 }
@@ -554,8 +548,6 @@
   ScheduleDAGInstrs *
   createMachineScheduler(MachineSchedContext *C) const override {
     ScheduleDAGMILive *DAG = createGenericSchedLive(C);
-    DAG->addMutation(createLoadClusterDAGMutation(DAG->TII, DAG->TRI));
-    DAG->addMutation(createStoreClusterDAGMutation(DAG->TII, DAG->TRI));
     return DAG;
   }
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65288.211775.patch
Type: text/x-patch
Size: 1721 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190725/5d08a06a/attachment.bin>


More information about the llvm-commits mailing list