File tree Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -303,11 +303,16 @@ struct RegisterPressure
303
303
}
304
304
}
305
305
306
+ RegisterPressure (const RegisterPressure& other) = delete ;
307
+ RegisterPressure& operator =(RegisterPressure& other) = delete ;
308
+
306
309
void init ()
307
310
{
308
311
p2a = new PointsToAnalysis (kernel.Declares , kernel.fg .getNumBB ());
309
312
p2a->doPointsToAnalysis (kernel.fg );
310
313
gra = new GlobalRA (kernel, kernel.fg .builder ->phyregpool , *p2a);
314
+ // To properly track liveness for partially-written local variables.
315
+ gra->markGraphBlockLocalVars (/* doLocalRA*/ false );
311
316
liveness = new LivenessAnalysis (*gra, G4_GRF | G4_ADDRESS | G4_INPUT | G4_FLAG);
312
317
liveness->computeLiveness (true );
313
318
rpe = new RPE (*gra, liveness);
@@ -382,11 +387,6 @@ struct RegisterPressure
382
387
}
383
388
std::cerr << " \n\n " ;
384
389
}
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);
390
390
};
391
391
392
392
struct SchedConfig
Original file line number Diff line number Diff line change @@ -42,9 +42,12 @@ namespace vISA
42
42
void RPE::run ()
43
43
{
44
44
startTimer (TIMER_RPE);
45
- for ( auto & bb : gra. kernel . fg . BBs )
45
+ if (liveAnalysis-> getNumSelectedVar () > 0 )
46
46
{
47
- runBB (bb);
47
+ for (auto & bb : gra.kernel .fg .BBs )
48
+ {
49
+ runBB (bb);
50
+ }
48
51
}
49
52
stopTimer (TIMER_RPE);
50
53
}
You can’t perform that action at this time.
0 commit comments