Expand description

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

Modules

A less precise version of MaybeInitializedPlaces whose domain is entire locals.

liveness 🔒

Structs

DefinitelyInitializedPlaces tracks all places that are definitely initialized upon reaching a particular point in the control flow for a function.

EverInitializedPlaces tracks all places that might have ever been initialized upon reaching a particular point in the control flow for a function, without an intervening StorageDead.

A dataflow analysis that tracks whether a pointer or reference could possibly exist that points to a given local.

MaybeInitializedPlaces tracks all places that might be initialized upon reaching a particular point in the control flow for a function.

Dataflow analysis that determines whether each local requires storage at a given location; i.e. whether its storage can go away without being observed.

Like MaybeLiveLocals, but does not mark locals as live if they are used in a dead assignment.

MaybeUninitializedPlaces tracks all places that might be uninitialized upon reaching a particular point in the control flow for a function.

Functions

The set of locals that are borrowed at some point in the MIR body.

Calls f for each mutable borrow or raw reference in the program.

Inspect a SwitchInt-terminated basic block to see if the condition of that SwitchInt is an enum discriminant.