Skip to content

Commit 473d9eb

Browse files
sys-d3djenkinsgfxbot
authored andcommitted
- Track register pressure more accurately when there are
partially-written local variables. - Fixes a crash in liveness Change-Id: I7d6f14d9c7e00c9faf347b7f9707129c192c74a6
1 parent 192efac commit 473d9eb

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

visa/LocalScheduler/G4_Sched.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -303,16 +303,11 @@ struct RegisterPressure
303303
}
304304
}
305305

306-
RegisterPressure(const RegisterPressure& other) = delete;
307-
RegisterPressure& operator=(RegisterPressure& other) = delete;
308-
309306
void init()
310307
{
311308
p2a = new PointsToAnalysis(kernel.Declares, kernel.fg.getNumBB());
312309
p2a->doPointsToAnalysis(kernel.fg);
313310
gra = new GlobalRA(kernel, kernel.fg.builder->phyregpool, *p2a);
314-
// To properly track liveness for partially-written local variables.
315-
gra->markGraphBlockLocalVars(/*doLocalRA*/false);
316311
liveness = new LivenessAnalysis(*gra, G4_GRF | G4_ADDRESS | G4_INPUT | G4_FLAG);
317312
liveness->computeLiveness(true);
318313
rpe = new RPE(*gra, liveness);
@@ -387,6 +382,11 @@ struct RegisterPressure
387382
}
388383
std::cerr << "\n\n";
389384
}
385+
private:
386+
// Private copy ctor, assignment operator to prevent shallow copy that
387+
// could lead to double free.
388+
RegisterPressure(const RegisterPressure& other);
389+
RegisterPressure& operator=(RegisterPressure& other);
390390
};
391391

392392
struct SchedConfig

visa/RPE.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,9 @@ namespace vISA
4242
void RPE::run()
4343
{
4444
startTimer(TIMER_RPE);
45-
if (liveAnalysis->getNumSelectedVar() > 0)
45+
for (auto& bb : gra.kernel.fg.BBs)
4646
{
47-
for (auto& bb : gra.kernel.fg.BBs)
48-
{
49-
runBB(bb);
50-
}
47+
runBB(bb);
5148
}
5249
stopTimer(TIMER_RPE);
5350
}

0 commit comments

Comments
 (0)