Struct rustc_mir::dataflow::at_location::FlowAtLocation [−][src]
pub struct FlowAtLocation<BD> where
BD: BitDenotation, { base_results: DataflowResults<BD>, curr_state: IdxSetBuf<BD::Idx>, stmt_gen: IdxSetBuf<BD::Idx>, stmt_kill: IdxSetBuf<BD::Idx>, }
🔬 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?
Represents the state of dataflow at a particular CFG location, both before and after it is executed.
Data flow results are typically computed only as basic block
boundaries. A FlowInProgress allows you to reconstruct the
effects at any point in the control-flow graph by starting with
the state at the start of the basic block (reset_to_entry_of)
and then replaying the effects of statements and terminators
(e.g. via reconstruct_statement_effect and
reconstruct_terminator_effect; don't forget to call
apply_local_effect).
Fields
base_results: DataflowResults<BD>
🔬 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?
curr_state: IdxSetBuf<BD::Idx>
🔬 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?
stmt_gen: IdxSetBuf<BD::Idx>
🔬 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?
stmt_kill: IdxSetBuf<BD::Idx>
🔬 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?
Methods
impl<BD> FlowAtLocation<BD> where
BD: BitDenotation, [src]
impl<BD> FlowAtLocation<BD> where
BD: BitDenotation, pub fn each_state_bit<F>(&self, f: F) where
F: FnMut(BD::Idx), [src]
pub fn each_state_bit<F>(&self, f: F) where
F: FnMut(BD::Idx), 🔬 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?
Iterate over each bit set in the current state.
pub fn each_gen_bit<F>(&self, f: F) where
F: FnMut(BD::Idx), [src]
pub fn each_gen_bit<F>(&self, f: F) where
F: FnMut(BD::Idx), 🔬 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?
Iterate over each gen bit in the current effect (invoke
reconstruct_statement_effect or
reconstruct_terminator_effect first).
pub fn new(results: DataflowResults<BD>) -> Self[src]
pub fn new(results: DataflowResults<BD>) -> Self🔬 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?
ⓘImportant traits for &'a mut Wpub fn operator(&self) -> &BD[src]
pub fn operator(&self) -> &BD🔬 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?
Access the underlying operator.
pub fn contains(&self, x: &BD::Idx) -> bool[src]
pub fn contains(&self, x: &BD::Idx) -> bool🔬 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?
ⓘImportant traits for Peekable<I>pub fn iter_incoming(&self) -> Peekable<Iter<BD::Idx>>[src]
pub fn iter_incoming(&self) -> Peekable<Iter<BD::Idx>>🔬 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?
Returns an iterator over the elements present in the current state.
pub fn with_iter_outgoing<F>(&self, f: F) where
F: FnOnce(Iter<BD::Idx>), [src]
pub fn with_iter_outgoing<F>(&self, f: F) where
F: FnOnce(Iter<BD::Idx>), 🔬 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?
Creates a clone of the current state and applies the local
effects to the clone (leaving the state of self intact).
Invokes f with an iterator over the resulting state.
impl<'tcx, T> FlowAtLocation<T> where
T: HasMoveData<'tcx> + BitDenotation<Idx = MovePathIndex>, [src]
impl<'tcx, T> FlowAtLocation<T> where
T: HasMoveData<'tcx> + BitDenotation<Idx = MovePathIndex>, pub fn has_any_child_of(&self, mpi: T::Idx) -> Option<T::Idx>[src]
pub fn has_any_child_of(&self, mpi: T::Idx) -> Option<T::Idx>🔬 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<BD> FlowsAtLocation for FlowAtLocation<BD> where
BD: BitDenotation, [src]
impl<BD> FlowsAtLocation for FlowAtLocation<BD> where
BD: BitDenotation, fn reset_to_entry_of(&mut self, bb: BasicBlock)[src]
fn reset_to_entry_of(&mut self, bb: BasicBlock)🔬 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?
Reset the state bitvector to represent the entry to block bb.
fn reconstruct_statement_effect(&mut self, loc: Location)[src]
fn reconstruct_statement_effect(&mut self, loc: Location)🔬 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?
Build gen + kill sets for statement at loc. Read more
fn reconstruct_terminator_effect(&mut self, loc: Location)[src]
fn reconstruct_terminator_effect(&mut self, loc: Location)🔬 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?
Build gen + kill sets for terminator for loc. Read more
fn apply_local_effect(&mut self, _loc: Location)[src]
fn apply_local_effect(&mut self, _loc: Location)🔬 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?
Apply current gen + kill sets to flow_state. Read more
Auto Trait Implementations
impl<BD> Send for FlowAtLocation<BD> where
BD: Send,
impl<BD> Send for FlowAtLocation<BD> where
BD: Send, impl<BD> Sync for FlowAtLocation<BD> where
BD: Sync,
impl<BD> Sync for FlowAtLocation<BD> where
BD: Sync,