summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-11-15 20:22:55 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-11-15 20:22:55 +0000
commitd4bb5e483118cfa2634a21689afa217134d98eab (patch)
treebda02df55583ab0a267a8cdc06d2cb28e5928c3f /llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
parent7004d6664efde9d1148ed677649593f989cc6056 (diff)
downloadbcm5719-llvm-d4bb5e483118cfa2634a21689afa217134d98eab.tar.gz
bcm5719-llvm-d4bb5e483118cfa2634a21689afa217134d98eab.zip
AMDGPU: Enable store clustering
Also respect the TII hook for these like the generic code does in case we want a flag later to disable this. llvm-svn: 287021
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 877dacd06f7..baf4d192c57 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -102,7 +102,14 @@ static ScheduleDAGInstrs *
createGCNMaxOccupancyMachineScheduler(MachineSchedContext *C) {
ScheduleDAGMILive *DAG =
new ScheduleDAGMILive(C, make_unique<GCNMaxOccupancySchedStrategy>(C));
- DAG->addMutation(createLoadClusterDAGMutation(DAG->TII, DAG->TRI));
+
+ const SIInstrInfo *TII = static_cast<const SIInstrInfo *>(DAG->TII);
+ if (TII->enableClusterLoads())
+ DAG->addMutation(createLoadClusterDAGMutation(TII, DAG->TRI));
+
+ if (TII->enableClusterStores())
+ DAG->addMutation(createStoreClusterDAGMutation(TII, DAG->TRI));
+
return DAG;
}
OpenPOWER on IntegriCloud