Trait rustc_mir::dataflow::at_location::FlowsAtLocation [−][src]
pub trait FlowsAtLocation { fn reset_to_entry_of(&mut self, bb: BasicBlock); fn reconstruct_statement_effect(&mut self, loc: Location); fn reconstruct_terminator_effect(&mut self, loc: Location); 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?
A trait for "cartesian products" of multiple FlowAtLocation.
There's probably a way to auto-impl this, but I think it is cleaner to have manual visitor impls.
Required Methods
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)
🔬 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
.
Note that invoking this method alone does not change the
curr_state
-- you must invoke apply_local_effect
afterwards.
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
.
Note that invoking this method alone does not change the
curr_state
-- you must invoke apply_local_effect
afterwards.
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
.
(loc
parameters can be ignored if desired by
client. For the terminator, the stmt_idx
will be the number
of statements in the block.)
Implementors
impl<'b, 'gcx, 'tcx> FlowsAtLocation for Flows<'b, 'gcx, 'tcx>
impl<BD> FlowsAtLocation for FlowAtLocation<BD> where
BD: BitDenotation,