Struct regalloc::StackmapRequestInfo[][src]

pub struct StackmapRequestInfo {
    pub reftype_class: RegClass,
    pub reftyped_vregs: Vec<VirtualReg>,
    pub safepoint_insns: Vec<InstIx>,
}

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.