From 9136eac9794e550f3411aeea2af4f3ff8ebd3678 Mon Sep 17 00:00:00 2001 From: Stanislav Mekhanoshin Date: Mon, 4 Jun 2018 17:57:40 +0000 Subject: [PATCH] [AMDGPU] Small refactoring in the scheduler After last changes some code can be simplified. Differential Revision: https://reviews.llvm.org/D47661 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333934 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/AMDGPU/GCNSchedStrategy.cpp | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/lib/Target/AMDGPU/GCNSchedStrategy.cpp b/lib/Target/AMDGPU/GCNSchedStrategy.cpp index d2883a8d998..1b054b92b70 100644 --- a/lib/Target/AMDGPU/GCNSchedStrategy.cpp +++ b/lib/Target/AMDGPU/GCNSchedStrategy.cpp @@ -28,18 +28,6 @@ GCNMaxOccupancySchedStrategy::GCNMaxOccupancySchedStrategy( const MachineSchedContext *C) : GenericScheduler(C), TargetOccupancy(0), MF(nullptr) { } -static unsigned getMaxWaves(unsigned SGPRs, unsigned VGPRs, - const MachineFunction &MF) { - - const SISubtarget &ST = MF.getSubtarget(); - const SIMachineFunctionInfo *MFI = MF.getInfo(); - unsigned MinRegOccupancy = std::min(ST.getOccupancyWithNumSGPRs(SGPRs), - ST.getOccupancyWithNumVGPRs(VGPRs)); - return std::min(MinRegOccupancy, - ST.getOccupancyWithLocalMemSize(MFI->getLDSSize(), - MF.getFunction())); -} - void GCNMaxOccupancySchedStrategy::initialize(ScheduleDAGMI *DAG) { GenericScheduler::initialize(DAG); @@ -358,12 +346,9 @@ void GCNScheduleDAGMILive::schedule() { LLVM_DEBUG(dbgs() << "Pressure in desired limits, done.\n"); return; } - unsigned WavesAfter = getMaxWaves(PressureAfter.getSGPRNum(), - PressureAfter.getVGPRNum(), MF); - unsigned WavesBefore = getMaxWaves(PressureBefore.getSGPRNum(), - PressureBefore.getVGPRNum(), MF); - WavesAfter = std::min(WavesAfter, MFI.getMaxWavesPerEU()); - WavesBefore = std::min(WavesBefore, MFI.getMaxWavesPerEU()); + unsigned Occ = MFI.getOccupancy(); + unsigned WavesAfter = std::min(Occ, PressureAfter.getOccupancy(ST)); + unsigned WavesBefore = std::min(Occ, PressureBefore.getOccupancy(ST)); LLVM_DEBUG(dbgs() << "Occupancy before scheduling: " << WavesBefore << ", after " << WavesAfter << ".\n"); -- 2.11.0