Crate rustc_mir_dataflow
source ·Re-exports§
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_lookup_result_bits;
Modules§
- errors 🔒
- Custom formatting traits used when outputting Graphviz diagrams with the results of a dataflow analysis.
- A framework that can express both gen-kill and generic dataflow problems.
- 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.
- Traits used to represent lattices for use as the domain of a dataflow analysis.
- 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 aninterpret::Place
(a memory location).
Structs§
- 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.
Enums§
- Extend a lattice with a bottom value to represent an unreachable execution.
Statics§
- Raw content of Fluent resource for this crate, generated by
fluent_messages
macro, imported byrustc_driver
to include all crates’ resources in one bundle.
Traits§
- 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.
- A partially ordered set that has a least upper bound for any pair of elements in the set.
- Things that can be visited by a
ResultsVisitor
. - A visitor over the results of an
Analysis
. The type parameterR
is the results type being visited. - A type that records the edge-specific effects for a
SwitchInt
terminator.
Functions§
- Calls the corresponding method in
ResultsVisitor
for every location in amir::Body
with the dataflow state at that location.