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,