Struct rustc_passes::liveness::rwu_table::RWUTable [−][src]
pub(super) struct RWUTable {
live_nodes: usize,
vars: usize,
words: Vec<u8>,
live_node_words: usize,
}
Expand description
Conceptually, this is like a Vec<Vec<RWU>>
. But the number of
RWU`s can get very large, so it uses a more compact representation.
Fields
live_nodes: usize
Total number of live nodes.
vars: usize
Total number of variables.
words: Vec<u8>
A compressed representation of RWU
s.
Each word represents 2 different RWU
s packed together. Each packed RWU
is stored in 4 bits: a reader bit, a writer bit, a used bit and a
padding bit.
The data for each live node is contiguous and starts at a word boundary, so there might be an unused space left.
live_node_words: usize
Number of words per each live node.
Implementations
Number of packed RWUs that fit into a single word.
Sets dst
to the union of dst
and src
, returns true if dst
was
changed.
Auto Trait Implementations
impl RefUnwindSafe for RWUTable
impl UnwindSafe for RWUTable
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 48 bytes