Track register pressure for dead EBB parameters.

The spiller wasn't tracking register pressure correctly for dead EBB
parameters in visit_ebb_header(). Make sure we free any dead EBB
parameters.

Fixes #223
This commit is contained in:
Jakob Stoklund Olesen
2018-01-17 12:39:10 -08:00
parent 5463fde203
commit 13af22b46b
5 changed files with 204 additions and 17 deletions

View File

@@ -120,7 +120,7 @@ impl<'a> Context<'a> {
fn visit_ebb(&mut self, ebb: Ebb, tracker: &mut LiveValueTracker) {
dbg!("Reloading {}:", ebb);
self.visit_ebb_header(ebb, tracker);
tracker.drop_dead_args();
tracker.drop_dead_params();
// visit_ebb_header() places us at the first interesting instruction in the EBB.
while let Some(inst) = self.cur.current_inst() {