[−][src]Struct cranelift_codegen::binemit::Stackmap
A stack map is a bitmap with one bit per machine word on the stack. Stack
maps are created at safepoint
instructions and record all live reference
values that are on the stack. All slot kinds, except OutgoingArg
are
captured in a stack map. The OutgoingArg
's will be captured in the callee
function as IncomingArg
's.
The first value in the bitmap is of the lowest addressed slot on the stack. As all stacks in Isa's supported by Cranelift grow down, this means that first value is of the top of the stack and values proceed down the stack.
Methods
impl Stackmap
[src]
pub fn from_values(args: &[Value], func: &Function, isa: &dyn TargetIsa) -> Self
[src]
Create a stackmap based on where references are located on a function's stack.
pub fn from_slice(vec: &[bool]) -> Self
[src]
Create a vec of Bitsets from a slice of bools.
pub fn get_bit(&self, bit_index: usize) -> bool
[src]
Returns a specified bit.
pub fn as_slice(&self) -> &[BitSet<u32>]
[src]
Returns the raw bitmap that represents this stack map.
pub fn mapped_words(&self) -> u32
[src]
Returns the number of words represented by this stack map.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Stackmap
impl Send for Stackmap
impl Sync for Stackmap
impl Unpin for Stackmap
impl UnwindSafe for Stackmap
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,