Return safepoint_slots as Allocations instead of SpillSlots
This enables us to support reftype vregs in register locations in the future.
This commit is contained in:
@@ -19,7 +19,7 @@ use crate::index::ContainerComparator;
|
||||
use crate::indexset::IndexSet;
|
||||
use crate::{
|
||||
define_index, Allocation, Block, Edit, Function, Inst, MachineEnv, Operand, PReg, ProgPoint,
|
||||
RegClass, SpillSlot, VReg,
|
||||
RegClass, VReg,
|
||||
};
|
||||
use smallvec::SmallVec;
|
||||
use std::cmp::Ordering;
|
||||
@@ -336,7 +336,7 @@ pub struct Env<'a, F: Function> {
|
||||
pub allocs: Vec<Allocation>,
|
||||
pub inst_alloc_offsets: Vec<u32>,
|
||||
pub num_spillslots: u32,
|
||||
pub safepoint_slots: Vec<(ProgPoint, SpillSlot)>,
|
||||
pub safepoint_slots: Vec<(ProgPoint, Allocation)>,
|
||||
|
||||
pub allocated_bundle_count: usize,
|
||||
|
||||
|
||||
@@ -58,10 +58,8 @@ impl<'a, F: Function> Env<'a, F> {
|
||||
}
|
||||
log::trace!(" -> covers safepoint {:?}", safepoints[safepoint_idx]);
|
||||
|
||||
let slot = alloc
|
||||
.as_stack()
|
||||
.expect("Reference-typed value not in spillslot at safepoint");
|
||||
self.safepoint_slots.push((safepoints[safepoint_idx], slot));
|
||||
self.safepoint_slots
|
||||
.push((safepoints[safepoint_idx], alloc));
|
||||
safepoint_idx += 1;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user