Struct rustc::middle::dataflow::DataFlowContext[][src]

pub struct DataFlowContext<'a, 'tcx: 'a, O> {
    tcx: TyCtxt<'a, 'tcx, 'tcx>,
    analysis_name: &'static str,
    oper: O,
    bits_per_id: usize,
    words_per_id: usize,
    local_id_to_index: FxHashMap<ItemLocalId, Vec<CFGIndex>>,
    gens: Vec<usize>,
    scope_kills: Vec<usize>,
    action_kills: Vec<usize>,
    on_entry: Vec<usize>,
}
🔬 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?

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?

🔬 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?

a name for the analysis using this dataflow instance

🔬 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?

the data flow operator

🔬 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?

number of bits to propagate per id

🔬 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?

number of words we will use to store bits_per_id. equal to bits_per_id/usize::BITS rounded up.

🔬 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?

bits generated as we exit the cfg node. Updated by add_gen().

🔬 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 killed as we exit the cfg node, or non-locally jump over it. Updated by add_kill(KillFrom::ScopeEnd).

🔬 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 killed as we exit the cfg node directly; if it is jumped over, e.g. via break, the kills are not reflected in the jump's effects. Updated by add_kill(KillFrom::Execution).

🔬 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 valid on entry to the cfg node. Updated by propagate().

Methods

impl<'a, 'tcx, O: DataFlowOperator> DataFlowContext<'a, 'tcx, O>
[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?

impl<'a, 'tcx, O: DataFlowOperator> DataFlowContext<'a, 'tcx, O>
[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?

Indicates that id generates bit

🔬 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?

Indicates that id kills bit

🔬 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?

Applies the gen and kill sets for cfgidx to bits

🔬 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?

Iterates through each bit that is set on entry to id. Only useful after propagate() has been called.

🔬 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?

Iterates through each bit that is set on entry/exit to cfgidx. Only useful after propagate() has been called.

🔬 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?

Iterates through each bit in the gen set for id.

🔬 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?

Helper for iterating over the bits in a bit set. Returns false on the first call to f that returns false; if all calls to f return true, then returns true.

🔬 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?

Whenever you have a break or continue statement, flow exits through any number of enclosing scopes on its way to the new destination. This function infers the kill bits of those control operators based on the kill bits associated with those scopes.

This is usually called (if it is called at all), after all add_gen and add_kill calls, but before propagate.

impl<'a, 'tcx, O: DataFlowOperator + Clone + 'static> DataFlowContext<'a, 'tcx, O>
[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?

Performs the data flow analysis.

Trait Implementations

impl<'a, 'tcx: 'a, O: Clone> Clone for DataFlowContext<'a, 'tcx, O>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a, 'tcx, O: DataFlowOperator> PpAnn for DataFlowContext<'a, 'tcx, O>
[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?

Auto Trait Implementations

impl<'a, 'tcx, O> !Send for DataFlowContext<'a, 'tcx, O>

impl<'a, 'tcx, O> !Sync for DataFlowContext<'a, 'tcx, O>