Skip to content

Commit 5ee9492

Browse files
bcheng0127sys_zuul
authored and
sys_zuul
committed
Add option for the first fit window in local RA
Change-Id: Ia91611523cec942c9c8921a24e7c0dad2d40df91
1 parent 3ed6bd6 commit 5ee9492

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

visa/LocalRA.cpp

+5-7
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ using namespace vISA;
3939

4040
#define NUM_PREGS_FOR_UNIQUE_ASSIGN 50
4141

42-
#define FF_LRA_WINDOW_SIZE 12
43-
4442
#define SPLIT_REF_CNT_THRESHOLD 3
4543
#define SPLIT_USE_CNT_THRESHOLD 2
4644
#define SPLIT_USE_DISTANCE_THRESHOLD 100
@@ -2063,7 +2061,7 @@ bool PhyRegsLocalRA::findFreeMultipleRegsForward(int regIdx, BankAlign align, in
20632061
{
20642062
if (isGRFAvailable(i) && forbidden.find(i) == forbidden.end() &&
20652063
regBusyVector[i] == 0 &&
2066-
(!isHybridAlloc || (((instID - regLastUse[i]) / 2 >= FF_LRA_WINDOW_SIZE) || (regLastUse[i] == 0)) || hintSet))
2064+
(!isHybridAlloc || (((instID - regLastUse[i]) / 2 >= LraFFWindowSize) || (regLastUse[i] == 0)) || hintSet))
20672065
{
20682066
foundItem++;
20692067
}
@@ -2089,7 +2087,7 @@ bool PhyRegsLocalRA::findFreeMultipleRegsForward(int regIdx, BankAlign align, in
20892087
if (i + 1 <= endReg + nrows - 1 &&
20902088
isGRFAvailable(i + 1) && forbidden.find(i+1) == forbidden.end() &&
20912089
(isWordBusy(i + 1, 0, lastRowSize) == false) &&
2092-
(!isHybridAlloc || (((instID - regLastUse[i + 1]) / 2 >= FF_LRA_WINDOW_SIZE) || (regLastUse[i + 1] == 0))))
2090+
(!isHybridAlloc || (((instID - regLastUse[i + 1]) / 2 >= LraFFWindowSize) || (regLastUse[i + 1] == 0))))
20932091
{
20942092
regnum = startReg;
20952093
return true;
@@ -2137,7 +2135,7 @@ bool PhyRegsLocalRA::findFreeMultipleRegsBackward(int regIdx, BankAlign align, i
21372135
{
21382136
if (isGRFAvailable(i) && forbidden.find(i) == forbidden.end() &&
21392137
regBusyVector[i] == 0 &&
2140-
(!isHybridAlloc || (((instID - regLastUse[i]) / 2 >= FF_LRA_WINDOW_SIZE) || (regLastUse[i] == 0))))
2138+
(!isHybridAlloc || (((instID - regLastUse[i]) / 2 >= LraFFWindowSize) || (regLastUse[i] == 0))))
21412139
{
21422140
foundItem++;
21432141
}
@@ -2163,7 +2161,7 @@ bool PhyRegsLocalRA::findFreeMultipleRegsBackward(int regIdx, BankAlign align, i
21632161
if (i + 1 <= endReg &&
21642162
isGRFAvailable(i + 1) && forbidden.find(i+1) ==forbidden.end() &&
21652163
(isWordBusy(i + 1, 0, lastRowSize) == false) &&
2166-
(!isHybridAlloc || (((instID - regLastUse[i + 1]) / 2 >= FF_LRA_WINDOW_SIZE) || (regLastUse[i + 1] == 0))))
2164+
(!isHybridAlloc || (((instID - regLastUse[i + 1]) / 2 >= LraFFWindowSize) || (regLastUse[i + 1] == 0))))
21672165
{
21682166
regnum = startReg;
21692167
return true;
@@ -2227,7 +2225,7 @@ bool PhyRegsLocalRA::findFreeSingleReg(int regIdx, int size, BankAlign align, G4
22272225
}
22282226

22292227
if (isGRFAvailable(i, 1) && forbidden.find(i) ==forbidden.end() &&
2230-
(!isHybridAlloc || (((instID - regLastUse[i]) / 2 >= FF_LRA_WINDOW_SIZE) || (regLastUse[i] == 0))))
2228+
(!isHybridAlloc || (((instID - regLastUse[i]) / 2 >= LraFFWindowSize) || (regLastUse[i] == 0))))
22312229
{
22322230
found = findFreeSingleReg(i, subalign, regnum, subregnum, size);
22332231
if (found)

visa/LocalRA.h

+3
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ class PhyRegsLocalRA
288288
bool r0Forbidden;
289289
bool r1Forbidden;
290290

291+
int LraFFWindowSize;
292+
291293
public:
292294
PhyRegsLocalRA(IR_Builder* _builder, uint32_t nregs) : builder(_builder), numRegs(nregs)
293295
{
@@ -313,6 +315,7 @@ class PhyRegsLocalRA
313315
simpleGRFAvailable = false;
314316
r0Forbidden = false;
315317
r1Forbidden = false;
318+
LraFFWindowSize = (int)builder->getOptions()->getuInt32Option(vISA_LraFFWindowSize);
316319
}
317320

318321
void* operator new(size_t sz, Mem_Manager& m) {return m.alloc(sz);}

visa/include/VISAOptions.def

+1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ DEF_VISA_OPTION(vISA_AbortOnSpillThreshold, ET_INT32, NULLSTR, UNUSED, 0)
122122
DEF_VISA_OPTION(vISA_enableBCR, ET_BOOL, "-enableBCR", UNUSED, false)
123123
DEF_VISA_OPTION(vISA_hierarchicaIPA, ET_BOOL, "-oldIPA", UNUSED, true)
124124
DEF_VISA_OPTION(vISA_IntrinsicSplit, ET_BOOL, "-doSplit", UNUSED, false)
125+
DEF_VISA_OPTION(vISA_LraFFWindowSize, ET_INT32, "-lraFFWindowSize", UNUSED, 12)
125126

126127
DEF_VISA_OPTION(vISA_VerifyAugmentation, ET_BOOL, "-verifyaugmentation", UNUSED, false)
127128
DEF_VISA_OPTION(vISA_VerifyExplicitSplit, ET_BOOL, "-verifysplit", UNUSED, false)

0 commit comments

Comments
 (0)