Struct cranelift_codegen::binemit::RegDiversions [−][src]
pub struct RegDiversions { /* fields omitted */ }
Expand description
Keep track of diversions in a block.
Implementations
Clear the content of the diversions, to reset the state of the compiler.
Get the current diversion of value
, if any.
Get the current location for value
. Fall back to the assignment map for non-diverted
values
Get the current register location for value
, or panic if value
isn’t in a register.
Get the current stack location for value
, or panic if value
isn’t in a stack slot.
Record a register -> register move.
Record a register -> stack move.
Record a stack -> register move.
Apply the effect of inst
.
If inst
is a regmove
, regfill
, or regspill
instruction, update the diversions to
match.
Drop any recorded move for value
.
Returns the to
location of the removed diversion.
Resets the state of the current diversions to the recorded diversions at the entry of the
given block
. The recoded diversions is available after coloring on func.entry_diversions
field.
Copy the current state of the diversions, and save it for the entry of the block
given as
argument.
Note: This function can only be called once on a Block
with a given entry_diversions
argument, otherwise it would panic.
Check that the recorded entry for a given block
matches what is recorded in the
entry_diversions
.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for RegDiversions
impl Send for RegDiversions
impl Sync for RegDiversions
impl Unpin for RegDiversions
impl UnwindSafe for RegDiversions
Blanket Implementations
Mutably borrows from an owned value. Read more