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,