Re-exports

Modules

  • errors 🔒
  • 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.
  • 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.
  • indexes 🔒
  • 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 an interpret::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 by rustc_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.
  • A type representing the analysis results consumed by a ResultsCursor.
  • Defines an Analysis which can be cloned for use in multiple ResultsCursors or ResultsVisitors. Note this need not be a full clone, only enough of one to be used with a new ResultsCursor or ResultsVisitor
  • 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 parameter R 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 a mir::Body with the dataflow state at that location.

Type Aliases

  • Results type with a cloned Analysis and borrowed entry sets.
  • A ResultsCursor which uses a cloned Analysis while borrowing the underlying Results. This allows multiple cursors over the same Results.
  • A ResultsCursor that borrows the underlying Results.