From 11a8738d716fa9f67da9fce2892c30352780e89b Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 27 Mar 2015 17:37:47 +0000 Subject: R600/SI: Disable register pressure tracking in the scheduler --- lib/Target/R600/AMDGPUSubtarget.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Target/R600/AMDGPUSubtarget.cpp b/lib/Target/R600/AMDGPUSubtarget.cpp index 0ead65209e1..15def380a48 100644 --- a/lib/Target/R600/AMDGPUSubtarget.cpp +++ b/lib/Target/R600/AMDGPUSubtarget.cpp @@ -119,10 +119,10 @@ void AMDGPUSubtarget::overrideSchedPolicy(MachineSchedPolicy &Policy, unsigned NumRegionInstrs) const { if (getGeneration() >= SOUTHERN_ISLANDS) { - // Track register pressure so the scheduler can try to decrease - // pressure once register usage is above the threshold defined by - // SIRegisterInfo::getRegPressureSetLimit() - Policy.ShouldTrackPressure = true; + // FIXME: Register pressure tracking seems to lead to worse code. + // I think part of the issue is that our RegPressureSet limits are too + // low, so we are almost always in REG-CRITICAL state. + Policy.ShouldTrackPressure = false; // Enabling both top down and bottom up scheduling seems to give us less // register spills than just using one of these approaches on its own. -- cgit v1.2.3