diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -40,9 +40,9 @@ #include "AMDGPUGenSubtargetInfo.inc" #undef AMDGPUSubtarget -static cl::opt DisablePowerSched( - "amdgpu-disable-power-sched", - cl::desc("Disable scheduling to minimize mAI power bursts"), +static cl::opt EnablePowerSched( + "amdgpu-enable-power-sched", + cl::desc("Enable scheduling to minimize mAI power bursts"), cl::init(false)); static cl::opt EnableVGPRIndexMode( @@ -916,7 +916,7 @@ void apply(ScheduleDAGInstrs *DAGInstrs) override { const GCNSubtarget &ST = DAGInstrs->MF.getSubtarget(); - if (!ST.hasMAIInsts() || DisablePowerSched) + if (!ST.hasMAIInsts()) return; DAG = static_cast(DAGInstrs); const TargetSchedModel *TSchedModel = DAGInstrs->getSchedModel(); @@ -966,7 +966,8 @@ std::unique_ptr GCNSubtarget::createFillMFMAShadowMutation(const TargetInstrInfo *TII) const { - return std::make_unique(&InstrInfo); + return EnablePowerSched ? std::make_unique(&InstrInfo) + : nullptr; } const AMDGPUSubtarget &AMDGPUSubtarget::get(const MachineFunction &MF) { diff --git a/llvm/test/CodeGen/AMDGPU/sched-prefer-non-mfma.mir b/llvm/test/CodeGen/AMDGPU/sched-prefer-non-mfma.mir --- a/llvm/test/CodeGen/AMDGPU/sched-prefer-non-mfma.mir +++ b/llvm/test/CodeGen/AMDGPU/sched-prefer-non-mfma.mir @@ -1,4 +1,4 @@ -# RUN: llc -march=amdgcn -mcpu=gfx908 -run-pass post-RA-sched -amdgpu-disable-power-sched -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s +# RUN: llc -march=amdgcn -mcpu=gfx908 -run-pass post-RA-sched -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s # GCN-LABEL: name: unrelated_mfma # GCN: V_MFMA_F32_32X32X1F32