@@ -2118,8 +2118,7 @@ unsigned G4_Kernel::getSRFInWords() {
21182118
21192119// GRF modes supported by HW
21202120// There must be at least one Config that is VRTEnable for each platform
2121- GRFMode::GRFMode (const TARGET_PLATFORM plat, Options *op)
2122- : platform(plat), options(op) {
2121+ GRFMode::GRFMode (const TARGET_PLATFORM platform, Options *op) : options(op) {
21232122 switch (platform) {
21242123 case Xe_XeHPSDV:
21252124 case Xe_DG2:
@@ -2180,7 +2179,7 @@ GRFMode::GRFMode(const TARGET_PLATFORM plat, Options *op)
21802179unsigned GRFMode::setModeByRegPressure (unsigned maxRP, unsigned largestInputReg,
21812180 bool forceGRFModeUp) {
21822181 unsigned size = configs.size (), i = 0 ;
2183- bool spillAllowed = getSpillThreshold ( ) > 0 ;
2182+ bool spillAllowed = options-> getuInt32Option (vISA_SpillAllowed ) > 256 ;
21842183 // find appropiate GRF based on reg pressure
21852184 for (; i < size; i++) {
21862185 if (configs[i].VRTEnable && configs[i].numGRF >= lowerBoundGRF &&
@@ -2198,22 +2197,10 @@ unsigned GRFMode::setModeByRegPressure(unsigned maxRP, unsigned largestInputReg,
21982197 currentMode = newGRFMode < maxGRFMode ? newGRFMode : maxGRFMode;
21992198 }
22002199
2201- if (spillAllowed && currentMode > 0 ) {
2202- unsigned lowerGRFNum = configs[currentMode - 1 ].numGRF ;
2203- // Select a lower GRF number in PreRA in case the register
2204- // pressure computed is a bit higher (e.g. 5%) than the lower GRF
2205- // config. If spills are detected, RA will still bump up the GRF
2206- // number to avoid them.
2207- // For example, if reg pressure is 167, we select 160GRF since
2208- // we have spill threshold enabled and the diff between 167 and 160
2209- // is less than 5%.
2210- if ((lowerGRFNum * 1.05 >= maxRP ||
2211- configs[currentMode].numGRF == getMaxGRF ()) &&
2212- lowerGRFNum >= (largestInputReg + 8 ) &&
2213- lowerGRFNum >= lowerBoundGRF)
2214- return configs[--currentMode].numGRF ;
2215- }
2216- return configs[currentMode].numGRF ;
2200+ if (spillAllowed && currentMode > 0 )
2201+ return configs[--currentMode].numGRF ;
2202+ else
2203+ return configs[currentMode].numGRF ;
22172204 }
22182205 }
22192206 }
@@ -2233,8 +2220,6 @@ bool GRFMode::hasLargerGRFSameThreads() const {
22332220
22342221// Get spill threshold for current GRF mode
22352222unsigned GRFMode::getSpillThreshold () const {
2236- if (platform < Xe3)
2237- return 0 ;
22382223 if (configs[currentMode].numGRF == 256 &&
22392224 options->getuInt32Option (vISA_SpillAllowed256GRF) > 0 )
22402225 return options->getuInt32Option (vISA_SpillAllowed256GRF);
0 commit comments