pub struct Ppc64RegAlloc { /* private fields */ }Implementations§
Source§impl Ppc64RegAlloc
impl Ppc64RegAlloc
pub fn new(target_os: TargetOperatingSystem) -> Self
pub fn get_mapping_for(&self, vreg: &VirtualReg) -> Option<&'static str>
pub fn gpr_pool_for_global_allocation() -> Vec<&'static str>
pub fn from_global_plan( target_os: TargetOperatingSystem, plan: &HashMap<VirtualReg, Allocation<&'static str>>, ) -> Self
Trait Implementations§
Source§impl Default for Ppc64RegAlloc
impl Default for Ppc64RegAlloc
Source§impl LocalRegisterAllocator for Ppc64RegAlloc
impl LocalRegisterAllocator for Ppc64RegAlloc
Source§fn alloc_scratch(&mut self) -> Option<Self::PhysReg>
fn alloc_scratch(&mut self) -> Option<Self::PhysReg>
Acquire a short-lived scratch register. Returns
None when the dedicated
pool is exhausted so the caller may spill or choose an alternate path.Source§fn free_scratch(&mut self, phys: Self::PhysReg)
fn free_scratch(&mut self, phys: Self::PhysReg)
Release a scratch register obtained through
LocalRegisterAllocator::alloc_scratch.Source§fn get_mapping(&self, vreg: &VirtualReg) -> Option<Self::PhysReg>
fn get_mapping(&self, vreg: &VirtualReg) -> Option<Self::PhysReg>
Look up the physical register currently assigned to the virtual
register, when available.
Source§fn ensure_mapping(&mut self, vreg: VirtualReg) -> Option<Self::PhysReg>
fn ensure_mapping(&mut self, vreg: VirtualReg) -> Option<Self::PhysReg>
Ensure that the virtual register has a permanent mapping. Implementers
can reject unsupported register classes by returning
None, signalling
that the caller should spill.Source§fn mapped_for_register(&self, reg: &Register) -> Option<Self::PhysReg>
fn mapped_for_register(&self, reg: &Register) -> Option<Self::PhysReg>
Resolve the backing physical register for an arbitrary MIR register
(virtual or physical).
Source§fn occupy(&mut self, _phys: Self::PhysReg)
fn occupy(&mut self, _phys: Self::PhysReg)
Mark a physical register as occupied, removing it from the allocator’s
free pool if necessary.
Source§fn release(&mut self, phys: Self::PhysReg)
fn release(&mut self, phys: Self::PhysReg)
Release a previously occupied physical register back to the pool.
Source§fn is_occupied(&self, phys: Self::PhysReg) -> bool
fn is_occupied(&self, phys: Self::PhysReg) -> bool
Test whether the allocator currently treats the physical register as
occupied.
Auto Trait Implementations§
impl Freeze for Ppc64RegAlloc
impl RefUnwindSafe for Ppc64RegAlloc
impl Send for Ppc64RegAlloc
impl Sync for Ppc64RegAlloc
impl Unpin for Ppc64RegAlloc
impl UnsafeUnpin for Ppc64RegAlloc
impl UnwindSafe for Ppc64RegAlloc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more