From 838c07c53195ba08aa42659c611a4f53bc4be804 Mon Sep 17 00:00:00 2001 From: Stanislav Mekhanoshin Date: Mon, 4 Jun 2018 17:57:40 +0000 Subject: [AMDGPU] Small refactoring in the scheduler After last changes some code can be simplified. Differential Revision: https://reviews.llvm.org/D47661 llvm-svn: 333934 --- llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) (limited to 'llvm/lib') diff --git a/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp b/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp index d2883a8d998..1b054b92b70 100644 --- a/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp +++ b/llvm/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"); -- cgit v1.2.3