Struct regalloc2::MachineEnv
source · [−]pub struct MachineEnv {
pub preferred_regs_by_class: [Vec<PReg>; 2],
pub non_preferred_regs_by_class: [Vec<PReg>; 2],
pub fixed_stack_slots: Vec<PReg>,
}
Expand description
A machine envrionment tells the register allocator which registers are available to allocate and what register may be used as a scratch register for each class, and some other miscellaneous info as well.
Fields
preferred_regs_by_class: [Vec<PReg>; 2]
Preferred physical registers for each class. These are the registers that will be allocated first, if free.
non_preferred_regs_by_class: [Vec<PReg>; 2]
Non-preferred physical registers for each class. These are the registers that will be allocated if a preferred register is not available; using one of these is considered suboptimal, but still better than spilling.
fixed_stack_slots: Vec<PReg>
Some PReg
s can be designated as locations on the stack rather than
actual registers. These can be used to tell the register allocator about
pre-defined stack slots used for function arguments and return values.
PReg
s in this list cannot be used as an allocatable register.
Trait Implementations
sourceimpl Clone for MachineEnv
impl Clone for MachineEnv
sourcefn clone(&self) -> MachineEnv
fn clone(&self) -> MachineEnv
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl RefUnwindSafe for MachineEnv
impl Send for MachineEnv
impl Sync for MachineEnv
impl Unpin for MachineEnv
impl UnwindSafe for MachineEnv
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more