Struct wasmtime_environ::ir::StackSlots [−][src]
pub struct StackSlots { pub layout_info: Option<StackLayoutInfo>, // some fields omitted }
Expand description
Stack frame manager.
Keep track of all the stack slots used by a function.
Fields
layout_info: Option<StackLayoutInfo>
Layout information computed from layout_stack
.
Implementations
impl StackSlots
[src]
impl StackSlots
[src]Stack slot manager functions that behave mostly like an entity map.
pub fn new() -> StackSlots
[src]
pub fn new() -> StackSlots
[src]Create an empty stack slot manager.
pub fn push(&mut self, data: StackSlotData) -> StackSlot
[src]
pub fn push(&mut self, data: StackSlotData) -> StackSlot
[src]Allocate a new stack slot.
This function should be primarily used by the text format parser. There are more convenient functions for creating specific kinds of stack slots below.
pub fn iter(&self) -> Iter<'_, StackSlot, StackSlotData>
[src]
pub fn iter(&self) -> Iter<'_, StackSlot, StackSlotData>
[src]Get an iterator over all the stack slot keys.
pub fn iter_mut(&mut self) -> IterMut<'_, StackSlot, StackSlotData>
[src]
pub fn iter_mut(&mut self) -> IterMut<'_, StackSlot, StackSlotData>
[src]Get an iterator over all the stack slot keys, mutable edition.
pub fn values(&self) -> Iter<'_, StackSlotData>
[src]
pub fn values(&self) -> Iter<'_, StackSlotData>
[src]Get an iterator over all the stack slot records.
pub fn values_mut(&mut self) -> IterMut<'_, StackSlotData>
[src]
pub fn values_mut(&mut self) -> IterMut<'_, StackSlotData>
[src]Get an iterator over all the stack slot records, mutable edition.
impl StackSlots
[src]
impl StackSlots
[src]Higher-level stack frame manipulation functions.
pub fn make_spill_slot(&mut self, ty: Type) -> StackSlot
[src]
pub fn make_spill_slot(&mut self, ty: Type) -> StackSlot
[src]Create a new spill slot for spilling values of type ty
.
pub fn make_incoming_arg(&mut self, size: u32, offset: i32) -> StackSlot
[src]
pub fn make_incoming_arg(&mut self, size: u32, offset: i32) -> StackSlot
[src]Create a stack slot representing an incoming function argument.
pub fn get_outgoing_arg(&mut self, size: u32, offset: i32) -> StackSlot
[src]
pub fn get_outgoing_arg(&mut self, size: u32, offset: i32) -> StackSlot
[src]Get a stack slot representing an outgoing argument.
This may create a new stack slot, or reuse an existing outgoing stack slot with the requested offset and size.
The requested offset is relative to this function’s stack pointer immediately before making the call.
pub fn get_emergency_slot(
&mut self,
ty: Type,
in_use: &[PackedOption<StackSlot>]
) -> StackSlot
[src]
pub fn get_emergency_slot(
&mut self,
ty: Type,
in_use: &[PackedOption<StackSlot>]
) -> StackSlot
[src]Get an emergency spill slot that can be used to store a ty
value.
This may allocate a new slot, or it may reuse an existing emergency spill slot, excluding
any slots in the in_use
list.
Trait Implementations
impl Clone for StackSlots
[src]
impl Clone for StackSlots
[src]pub fn clone(&self) -> StackSlots
[src]
pub fn clone(&self) -> StackSlots
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for StackSlots
[src]
impl Debug for StackSlots
[src]impl Default for StackSlots
[src]
impl Default for StackSlots
[src]pub fn default() -> StackSlots
[src]
pub fn default() -> StackSlots
[src]Returns the “default value” for a type. Read more
impl<'de> Deserialize<'de> for StackSlots
[src]
impl<'de> Deserialize<'de> for StackSlots
[src]pub fn deserialize<__D>(
__deserializer: __D
) -> Result<StackSlots, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
[src]
pub fn deserialize<__D>(
__deserializer: __D
) -> Result<StackSlots, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
impl Index<StackSlot> for StackSlots
[src]
impl Index<StackSlot> for StackSlots
[src]type Output = StackSlotData
type Output = StackSlotData
The returned type after indexing.
pub fn index(&self, ss: StackSlot) -> &StackSlotData
[src]
pub fn index(&self, ss: StackSlot) -> &StackSlotData
[src]Performs the indexing (container[index]
) operation. Read more
impl IndexMut<StackSlot> for StackSlots
[src]
impl IndexMut<StackSlot> for StackSlots
[src]pub fn index_mut(&mut self, ss: StackSlot) -> &mut StackSlotData
[src]
pub fn index_mut(&mut self, ss: StackSlot) -> &mut StackSlotData
[src]Performs the mutable indexing (container[index]
) operation. Read more
impl PartialEq<StackSlots> for StackSlots
[src]
impl PartialEq<StackSlots> for StackSlots
[src]pub fn eq(&self, other: &StackSlots) -> bool
[src]
pub fn eq(&self, other: &StackSlots) -> bool
[src]This method tests for self
and other
values to be equal, and is used
by ==
. Read more
pub fn ne(&self, other: &StackSlots) -> bool
[src]
pub fn ne(&self, other: &StackSlots) -> bool
[src]This method tests for !=
.
impl Serialize for StackSlots
[src]
impl Serialize for StackSlots
[src]pub fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
[src]
pub fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
[src]Serialize this value into the given Serde serializer. Read more
impl Eq for StackSlots
[src]
impl StructuralEq for StackSlots
[src]
impl StructuralPartialEq for StackSlots
[src]
Auto Trait Implementations
impl RefUnwindSafe for StackSlots
impl Send for StackSlots
impl Sync for StackSlots
impl Unpin for StackSlots
impl UnwindSafe for StackSlots
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]
pub fn equivalent(&self, key: &K) -> bool
[src]Compare self to key
and return true
if they are equal.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,