rustc_mir_dataflow - Rust (original) (raw)

Crate rustc_mir_dataflow

Source

Modules§

debuginfo

drop_flag_effects 🔒

errors 🔒

fmt

Custom formatting traits used when outputting Graphviz diagrams with the results of a dataflow analysis.

framework 🔒

A framework that can express both gen-kill and generic dataflow problems.

graphviz

A helpful diagram for debugging dataflow problems.

impls

lattice

Traits used to represent lattices for use as the domain of a dataflow analysis.

move_paths

points

rustc_peek

un_derefer 🔒

value_analysis

Structs§

Backward

Dataflow that runs from the exit of a block (terminator), to its entry (the first statement).

Forward

Dataflow that runs from the entry of a block (the first statement), to its exit (terminator).

MoveDataTypingEnv

Results

A dataflow analysis that has converged to fixpoint. It only holds the domain values at the entry of each basic block. Domain values in other parts of the block are recomputed on the fly by visitors (i.e. ResultsCursor, or ResultsVisitor impls).

ResultsCursor

Allows random access inspection of the results of a dataflow analysis. Use this when you want to inspect domain values only in certain locations; use ResultsVisitor if you want to inspect domain values in many or all locations.

Enums§

DropFlagState

The value of an inserted drop flag.

MaybeReachable

Extend a lattice with a bottom value to represent an unreachable execution.

Statics§

DEFAULT_LOCALE_RESOURCE

Raw content of Fluent resource for this crate, generated by fluent_messages macro, imported by rustc_driver to include all crates’ resources in one bundle.

Traits§

Analysis

A dataflow problem with an arbitrarily complex transfer function.

Direction

GenKill

The legal operations for a transfer function in a gen/kill problem.

JoinSemiLattice

A partially ordered set that has a least upper bound for any pair of elements in the set.

ResultsVisitor

A visitor over the results of an Analysis. Use this when you want to inspect domain values in many or all locations; use ResultsCursor if you want to inspect domain values only in certain locations.

Functions§

drop_flag_effects_for_function_entry

drop_flag_effects_for_location

move_path_children_matching

on_all_children_bits

on_lookup_result_bits

visit_results

Calls the corresponding method in ResultsVisitor for every location in a mir::Body with the dataflow state at that location.

Type Aliases§

EntryStates