Skip to content

Commit 2066c68

Browse files
bcheng0127sys_zuul
authored andcommitted
Add BCR to linear Scan RA
Change-Id: I030045cff167055fd757905161c9034890c08df3
1 parent 9d27898 commit 2066c68

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

visa/FlowGraph.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,6 +1265,7 @@ class FlowGraph
12651265
DO(GRAPH_COLORING_SPILL_RR_RA) \
12661266
DO(GRAPH_COLORING_SPILL_FF_RA) \
12671267
DO(GLOBAL_LINEAR_SCAN_RA) \
1268+
DO(GLOBAL_LINEAR_SCAN_BC_RA) \
12681269
DO(UNKNOWN_RA)
12691270

12701271
enum RA_Type

visa/LinearScanRA.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1607,14 +1607,26 @@ bool LinearScanRA::doLinearScanRA()
16071607
reduceBCInRR = bc.setupBankConflictsForKernel(false, reduceBCInTAandFF, numRegLRA, highInternalConflict);
16081608
}
16091609

1610+
if (reduceBCInTAandFF || reduceBCInRR)
1611+
{
1612+
doBCR = true;
1613+
}
1614+
16101615
//Initial pregs which will be used in the preRAAnalysis
16111616
PhyRegsLocalRA phyRegs(&builder, kernel.getNumRegTotal());
16121617
pregs = &phyRegs;
16131618
preRAAnalysis();
16141619

16151620
bool success = linearScanRA();
16161621

1617-
kernel.setRAType(RA_Type::GLOBAL_LINEAR_SCAN_RA);
1622+
if (doBCR)
1623+
{
1624+
kernel.setRAType(RA_Type::GLOBAL_LINEAR_SCAN_BC_RA);
1625+
}
1626+
else
1627+
{
1628+
kernel.setRAType(RA_Type::GLOBAL_LINEAR_SCAN_RA);
1629+
}
16181630
//kernel.dump();
16191631
return success;
16201632
}

visa/RegAlloc.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3761,6 +3761,7 @@ static void recordRAStats(IR_Builder& builder,
37613761
case RA_Type::GRAPH_COLORING_SPILL_RR_BC_RA:
37623762
case RA_Type::GRAPH_COLORING_SPILL_FF_BC_RA:
37633763
case RA_Type::GLOBAL_LINEAR_SCAN_RA:
3764+
case RA_Type::GLOBAL_LINEAR_SCAN_BC_RA:
37643765
Stats.SetFlag("IsGlobalRA", SimdSize);
37653766
break;
37663767
case RA_Type::UNKNOWN_RA:

0 commit comments

Comments
 (0)