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:
Amanieu d'Antras
2021-09-16 14:02:26 +01:00
parent a527a6d25a
commit a516e6d6f3
4 changed files with 26 additions and 28 deletions

View File

@@ -1180,8 +1180,11 @@ pub struct Output {
/// Allocation offset in `allocs` for each instruction.
pub inst_alloc_offsets: Vec<u32>,
/// Safepoint records: at a given program point, a reference-typed value lives in the given SpillSlot.
pub safepoint_slots: Vec<(ProgPoint, SpillSlot)>,
/// Safepoint records: at a given program point, a reference-typed value
/// lives in the given Allocation. Currently these are guaranteed to be
/// stack slots, but in the future an option may be added to allow
/// reftype value to be kept in registers at safepoints.
pub safepoint_slots: Vec<(ProgPoint, Allocation)>,
/// Debug info: a labeled value (as applied to vregs by
/// `Function::debug_value_labels()` on the input side) is located