Trait cranelift_codegen::MachInstEmitState
source · pub trait MachInstEmitState<I: VCodeInst>: Default + Clone + Debug {
// Required methods
fn new(abi: &Callee<I::ABIMachineSpec>, ctrl_plane: ControlPlane) -> Self;
fn ctrl_plane_mut(&mut self) -> &mut ControlPlane;
fn take_ctrl_plane(self) -> ControlPlane;
// Provided methods
fn pre_safepoint(&mut self, _stack_map: StackMap) { ... }
fn pre_sourceloc(&mut self, _srcloc: RelSourceLoc) { ... }
fn on_new_block(&mut self) { ... }
}
Expand description
A trait describing the emission state carried between MachInsts when emitting a function body.
Required Methods§
sourcefn new(abi: &Callee<I::ABIMachineSpec>, ctrl_plane: ControlPlane) -> Self
fn new(abi: &Callee<I::ABIMachineSpec>, ctrl_plane: ControlPlane) -> Self
Create a new emission state given the ABI object.
sourcefn ctrl_plane_mut(&mut self) -> &mut ControlPlane
fn ctrl_plane_mut(&mut self) -> &mut ControlPlane
The emission state holds ownership of a control plane, so it doesn’t
have to be passed around explicitly too much. ctrl_plane_mut
may
be used if temporary access to the control plane is needed by some
other function that doesn’t have access to the emission state.
sourcefn take_ctrl_plane(self) -> ControlPlane
fn take_ctrl_plane(self) -> ControlPlane
Used to continue using a control plane after the emission state is not needed anymore.
Provided Methods§
sourcefn pre_safepoint(&mut self, _stack_map: StackMap)
fn pre_safepoint(&mut self, _stack_map: StackMap)
Update the emission state before emitting an instruction that is a safepoint.
sourcefn pre_sourceloc(&mut self, _srcloc: RelSourceLoc)
fn pre_sourceloc(&mut self, _srcloc: RelSourceLoc)
Update the emission state to indicate instructions are associated with a particular RelSourceLoc.
sourcefn on_new_block(&mut self)
fn on_new_block(&mut self)
A hook that triggers when first emitting a new block. It is guaranteed to be called before any instructions are emitted.