Struct regalloc::Writable [−][src]
pub struct Writable<R: WritableBase> { /* fields omitted */ }
Expand description
A “writable register”. This is a zero-cost wrapper that can be used to create a distinction, at the Rust type level, between a plain “register” and a “writable register”.
Only structs that implement the WritableBase
trait can be wrapped with
Writable
. These are the Reg, RealReg and VirtualReg data structures only,
since WritableBase
is not exposed to end users.
Writable<..> can be used by the client to ensure that, internally, it only
generates instructions that write to registers that should be written. The
InstRegUses
below, which must be implemented for every instruction,
requires a Writable<Reg>
(not just Reg
) in its defined
and
modified
sets. While we cannot hide the constructor for Writable<..>
from certain parts of the client while exposing it to others, the client
can adopt conventions to e.g. only ever call the Writable<..>
constructor from its central vreg-management logic, and decide that any
invocation of this constructor in a machine backend (for example) is an
error.
Implementations
Create a WritableWritable<..>
struct documentation).
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
The same as |show_rru|, but with an optional hint giving a size in bytes. Its interpretation is object-dependent, and it is intended to pass around enough information to facilitate printing sub-parts of real registers correctly. Objects may ignore size hints that are irrelevant to them. Read more
Auto Trait Implementations
impl<R> RefUnwindSafe for Writable<R> where
R: RefUnwindSafe,
impl<R> UnwindSafe for Writable<R> where
R: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more