pub use self::drop_flag_effects::drop_flag_effects_for_function_entry;
pub use self::drop_flag_effects::drop_flag_effects_for_location;
pub use self::drop_flag_effects::move_path_children_matching;
pub use self::drop_flag_effects::on_all_children_bits;
pub use self::drop_flag_effects::on_all_drop_children_bits;
pub use self::drop_flag_effects::on_lookup_result_bits;
Custom formatting traits used when outputting Graphviz diagrams with the results of a dataflow analysis.
A helpful diagram for debugging dataflow problems.
Dataflow analyses are built upon some interpretation of the bitvectors attached to each basic block, represented via a zero-sized structure.
This module provides a framework on top of the normal MIR dataflow framework to simplify the implementation of analyses that track information about the values stored in certain places. We are using the term “place” here to refer to a
mir::Place(a place expression) instead of an
interpret::Place(a memory location).
Dataflow that runs from the exit of a block (the terminator), to its entry (the first statement).
A solver for dataflow problems.
Dataflow that runs from the entry of a block (the first statement), to its exit (terminator).
A dataflow analysis that has converged to fixpoint.
Allows random access inspection of the results of a dataflow analysis.
List of places that are written to after a successful (non-unwind) return from a
A dataflow problem with an arbitrarily complex transfer function.
Defines the domain of a dataflow problem.
The legal operations for a transfer function in a gen/kill problem.
A gen/kill dataflow problem.
Things that can be visited by a
A type that records the edge-specific effects for a
Calls the corresponding method in
ResultsVisitorfor every location in a
mir::Bodywith the dataflow state at that location.
ResultsCursorthat borrows the underlying