From: QingShan Zhang Date: Thu, 4 Jul 2019 07:43:51 +0000 (+0000) Subject: [NFC][PowerPC] Make the PowerPC scheduling strategy feature only control the strategy... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c90ae265e97b798a9f2bd706e981efe8134219c8;p=llvm [NFC][PowerPC] Make the PowerPC scheduling strategy feature only control the strategy instead of the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365110 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp index fcaf7d6e3ee..ce00f848dd7 100644 --- a/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -256,8 +256,11 @@ static CodeModel::Model getEffectivePPCCodeModel(const Triple &TT, static ScheduleDAGInstrs *createPPCMachineScheduler(MachineSchedContext *C) { + const PPCSubtarget &ST = C->MF->getSubtarget(); ScheduleDAGMILive *DAG = - new ScheduleDAGMILive(C, llvm::make_unique(C)); + new ScheduleDAGMILive(C, ST.usePPCPreRASchedStrategy() ? + llvm::make_unique(C) : + llvm::make_unique(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(); ScheduleDAGMI *DAG = - new ScheduleDAGMI(C, llvm::make_unique(C), true); + new ScheduleDAGMI(C, ST.usePPCPostRASchedStrategy() ? + llvm::make_unique(C) : + llvm::make_unique(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(); - if (ST.usePPCPreRASchedStrategy()) - return createPPCMachineScheduler(C); - return nullptr; + return createPPCMachineScheduler(C); } ScheduleDAGInstrs * createPostMachineScheduler(MachineSchedContext *C) const override { - const PPCSubtarget &ST = C->MF->getSubtarget(); - if (ST.usePPCPostRASchedStrategy()) - return createPPCPostMachineScheduler(C); - return nullptr; + return createPPCPostMachineScheduler(C); } };