Struct regalloc::StackmapRequestInfo
source · [−]pub struct StackmapRequestInfo {
pub reftype_class: RegClass,
pub reftyped_vregs: Vec<VirtualReg>,
pub safepoint_insns: Vec<InstIx>,
}
Expand description
A structure with which callers can request stackmap information.
Fields
reftype_class: RegClass
The register class that holds reftypes. This may only be RegClass::I32 or RegClass::I64, and it must equal the word size of the target architecture.
reftyped_vregs: Vec<VirtualReg>
The virtual regs that hold reftyped values. These must be provided in ascending order
of register index and be duplicate-free. They must have class reftype_class
.
safepoint_insns: Vec<InstIx>
The indices of instructions for which the allocator will construct stackmaps. These must be provided in ascending order and be duplicate-free. The specified instructions may not be coalescable move instructions (as the allocator may remove those) and they may not modify any register carrying a reftyped value (they may “def” or “use” them, though). The reason is that, at a safepoint, the client’s garbage collector may change the values of all live references, so it would be meaningless for a safepoint instruction also to attempt to do that – we’d end up with two competing new values.
Auto Trait Implementations
impl RefUnwindSafe for StackmapRequestInfo
impl Send for StackmapRequestInfo
impl Sync for StackmapRequestInfo
impl Unpin for StackmapRequestInfo
impl UnwindSafe for StackmapRequestInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more