Module rustc_mir::dataflow[][src]

🔬 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?

Re-exports

pub use self::impls::MaybeStorageLive;
pub use self::impls::MaybeInitializedPlaces;
pub use self::impls::MaybeUninitializedPlaces;
pub use self::impls::DefinitelyInitializedPlaces;
pub use self::impls::MovingOutStatements;
pub use self::impls::EverInitializedPlaces;
pub use self::impls::borrows::Borrows;
pub use self::impls::HaveBeenBorrowedLocals;
pub use self::at_location::FlowAtLocation;
pub use self::at_location::FlowsAtLocation;

Modules

at_location [
Experimental
]

A nice wrapper to consume dataflow results at several CFG locations.

drop_flag_effects [
Experimental
]
graphviz [
Experimental
]

Hook into libgraphviz for rendering dataflow graphs for MIR.

impls [
Experimental
]

Dataflow analyses are built upon some interpretation of the bitvectors attached to each basic block, represented via a zero-sized structure.

move_paths [
Experimental
]

Structs

AllSets [
Experimental
]
Bits [
Experimental
]

Maps each block to a set of bits

BlockSets [
Experimental
]

Triple of sets associated with a given block.

DataflowAnalysis [
Experimental
]
DataflowBuilder [
Experimental
]
DataflowResults [
Experimental
]
DataflowState [
Experimental
]

State of a dataflow analysis; couples a collection of bit sets with operator used to initialize and merge bits during analysis.

DebugFormatted [
Experimental
]

DebugFormatted encapsulates the "{:?}" rendering of some arbitrary value. This way: you pay cost of allocating an extra string (as well as that of rendering up-front); in exchange, you don't have to hand over ownership of your value or deal with borrowing it.

MoveDataParamEnv [
Experimental
]
PropagationContext [
Experimental
]

Traits

BitDenotation [
Experimental
]
Dataflow [
Experimental
]
DataflowResultsConsumer [
Experimental
]

DataflowResultsConsumer abstracts over walking the MIR with some already constructed dataflow results.

InitialFlow [
Experimental
]

Parameterization for the precise form of data flow that is used. InitialFlow handles initializing the bitvectors before any code is inspected by the analysis. Analyses that need more nuanced initialization (e.g. they need to consult the results of some other dataflow analysis to set up the initial bitvectors) should not implement this.

Functions

dataflow_path [
Experimental
]
do_dataflow [
Experimental
]
has_rustc_mir_with [
Experimental
]
state_for_location [
Experimental
]