Use a sorted array for (Ebb, Inst) interval again (fixes #1084);
This commit is contained in:
@@ -98,7 +98,6 @@ where
|
||||
let encinfo = isa.encoding_info();
|
||||
let values_locations = &func.locations;
|
||||
let liveness_ranges = regalloc.liveness().ranges();
|
||||
let liveness_forest = regalloc.liveness().forest();
|
||||
|
||||
let mut ranges = HashMap::new();
|
||||
let mut add_range = |label, range: (u32, u32), loc: ValueLoc| {
|
||||
@@ -127,10 +126,7 @@ where
|
||||
// Remove killed values.
|
||||
tracked_values.retain(|(x, label, start_offset, last_loc)| {
|
||||
let range = liveness_ranges.get(*x);
|
||||
if range
|
||||
.expect("value")
|
||||
.killed_at(inst, ebb, &liveness_forest, &func.layout)
|
||||
{
|
||||
if range.expect("value").killed_at(inst, ebb, &func.layout) {
|
||||
add_range(*label, (*start_offset, end_offset), *last_loc);
|
||||
return false;
|
||||
}
|
||||
@@ -177,7 +173,7 @@ where
|
||||
// Ignore dead/inactive Values.
|
||||
let range = liveness_ranges.get(*v);
|
||||
match range {
|
||||
Some(r) => r.reaches_use(inst, ebb, &liveness_forest, &func.layout),
|
||||
Some(r) => r.reaches_use(inst, ebb, &func.layout),
|
||||
None => false,
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user