Struct rustc_mir::dataflow::BlockSets[][src]

pub struct BlockSets<'a, E: Idx> {
    on_entry: &'a mut IdxSet<E>,
    gen_set: &'a mut IdxSet<E>,
    kill_set: &'a mut IdxSet<E>,
}
🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Triple of sets associated with a given block.

Generally, one sets up on_entry, gen_set, and kill_set for each block individually, and then runs the dataflow analysis which iteratively modifies the various on_entry sets (but leaves the other two sets unchanged, since they represent the effect of the block, which should be invariant over the course of the analysis).

It is best to ensure that the intersection of gen_set and kill_set is empty; otherwise the results of the dataflow will have a hidden dependency on what order the bits are generated and killed during the iteration. (This is such a good idea that the fn gen and fn kill methods that set their state enforce this for you.)

Fields

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Dataflow state immediately before control flow enters the given block.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Bits that are set to 1 by the time we exit the given block.

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Bits that are set to 0 by the time we exit the given block.

Methods

impl<'a, E: Idx> BlockSets<'a, E>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Trait Implementations

impl<'a, E: Debug + Idx> Debug for BlockSets<'a, E>
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl<'a, E> Send for BlockSets<'a, E>

impl<'a, E> Sync for BlockSets<'a, E>