]> granicus.if.org Git - llvm/commitdiff
[NFC][PowerPC] Make the PowerPC scheduling strategy feature only control the strategy...
authorQingShan Zhang <qshanz@cn.ibm.com>
Thu, 4 Jul 2019 07:43:51 +0000 (07:43 +0000)
committerQingShan Zhang <qshanz@cn.ibm.com>
Thu, 4 Jul 2019 07:43:51 +0000 (07:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365110 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCTargetMachine.cpp

index fcaf7d6e3ee74ef9719f753d6355d6b32165d16d..ce00f848dd72550c581d19251f8a9d8a577cd2f4 100644 (file)
@@ -256,8 +256,11 @@ static CodeModel::Model getEffectivePPCCodeModel(const Triple &TT,
 
 
 static ScheduleDAGInstrs *createPPCMachineScheduler(MachineSchedContext *C) {
+  const PPCSubtarget &ST = C->MF->getSubtarget<PPCSubtarget>();
   ScheduleDAGMILive *DAG =
-    new ScheduleDAGMILive(C, llvm::make_unique<PPCPreRASchedStrategy>(C));
+    new ScheduleDAGMILive(C, ST.usePPCPreRASchedStrategy() ?
+                          llvm::make_unique<PPCPreRASchedStrategy>(C) :
+                          llvm::make_unique<GenericScheduler>(C));
   // add DAG Mutations here.
   DAG->addMutation(createCopyConstrainDAGMutation(DAG->TII, DAG->TRI));
   return DAG;
@@ -265,8 +268,11 @@ static ScheduleDAGInstrs *createPPCMachineScheduler(MachineSchedContext *C) {
 
 static ScheduleDAGInstrs *createPPCPostMachineScheduler(
   MachineSchedContext *C) {
+  const PPCSubtarget &ST = C->MF->getSubtarget<PPCSubtarget>();
   ScheduleDAGMI *DAG =
-    new ScheduleDAGMI(C, llvm::make_unique<PPCPostRASchedStrategy>(C), true);
+    new ScheduleDAGMI(C, ST.usePPCPostRASchedStrategy() ?
+                      llvm::make_unique<PPCPostRASchedStrategy>(C) :
+                      llvm::make_unique<PostGenericScheduler>(C), true);
   // add DAG Mutations here.
   return DAG;
 }
@@ -366,17 +372,11 @@ public:
   void addPreEmitPass() override;
   ScheduleDAGInstrs *
   createMachineScheduler(MachineSchedContext *C) const override {
-    const PPCSubtarget &ST = C->MF->getSubtarget<PPCSubtarget>();
-    if (ST.usePPCPreRASchedStrategy())
-      return createPPCMachineScheduler(C);
-    return nullptr;
+    return createPPCMachineScheduler(C);
   }
   ScheduleDAGInstrs *
   createPostMachineScheduler(MachineSchedContext *C) const override {
-    const PPCSubtarget &ST = C->MF->getSubtarget<PPCSubtarget>();
-    if (ST.usePPCPostRASchedStrategy())
-      return createPPCPostMachineScheduler(C);
-    return nullptr;
+    return createPPCPostMachineScheduler(C);
   }
 };