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 RegDiversionsimpl Send for RegDiversionsimpl Sync for RegDiversionsimpl Unpin for RegDiversionsimpl UnwindSafe for RegDiversionsBlanket Implementations
Mutably borrows from an owned value. Read more