[−][src]Struct rustc_mir::dataflow::at_location::FlowAtLocation
🔬 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: IdxSet<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: HybridIdxSet<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: HybridIdxSet<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 Rpub 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<BitIter<BD::Idx>>
[src]
pub fn iter_incoming(&self) -> Peekable<BitIter<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(BitIter<BD::Idx>),
[src]
pub fn with_iter_outgoing<F>(&self, f: F) where
F: FnOnce(BitIter<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 reset_to_exit_of(&mut self, bb: BasicBlock)
[src]
fn reset_to_exit_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 exit of the terminator of block bb
. Read more
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,
<BD as BitDenotation>::Idx: Send,
impl<BD> Send for FlowAtLocation<BD> where
BD: Send,
<BD as BitDenotation>::Idx: Send,
impl<BD> Sync for FlowAtLocation<BD> where
BD: Sync,
<BD as BitDenotation>::Idx: Sync,
impl<BD> Sync for FlowAtLocation<BD> where
BD: Sync,
<BD as BitDenotation>::Idx: Sync,
Blanket Implementations
impl<T> From for T
[src]
impl<T> From for T
impl<T, U> Into for T where
U: From<T>,
[src]
impl<T, U> Into for T where
U: From<T>,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
impl<T, U> TryFrom for T where
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
try_from
)Performs the conversion.
impl<T> Borrow for T where
T: ?Sized,
[src]
impl<T> Borrow for T where
T: ?Sized,
ⓘImportant traits for &'a mut Rfn borrow(&self) -> &T
[src]
fn borrow(&self) -> &T
Immutably borrows from an owned value. Read more
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
try_from
)Performs the conversion.
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
ⓘImportant traits for &'a mut Rfn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
Gets the TypeId
of self
. Read more
impl<E> SpecializationError for E
[src]
impl<E> SpecializationError for E
fn not_found<S, T>(trait_name: &'static str, method_name: &'static str) -> E where
T: ?Sized,
[src]
fn not_found<S, T>(trait_name: &'static str, method_name: &'static str) -> E where
T: ?Sized,
🔬 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?
Create an error for a missing method specialization. Defaults to panicking with type, trait & method names. S
is the encoder/decoder state type, T
is the type being encoded/decoded, and the arguments are the names of the trait and method that should've been overridden. Read more
impl<T> Erased for T
[src]
impl<T> Erased for T
impl<T> Send for T where
T: ?Sized,
[src]
impl<T> Send for T where
T: ?Sized,
impl<T> Sync for T where
T: ?Sized,
[src]
impl<T> Sync for T where
T: ?Sized,
impl<T> Erased for T
impl<T> Erased for T
impl<T> MaybeResult for T
[src]
impl<T> MaybeResult for T
fn from_ok(x: T) -> T
[src]
fn from_ok(x: T) -> T
🔬 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?
fn map_same<F>(self, f: F) -> T where
F: FnOnce(T) -> T,
[src]
fn map_same<F>(self, f: F) -> T where
F: FnOnce(T) -> T,
🔬 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, T> Captures for T where
T: ?Sized,
[src]
impl<'a, T> Captures for T where
T: ?Sized,