ModulesΒ§
- borrowed_
locals π - initialized π
- liveness π
- precise_
liveness π - Computes the points where each local must have a distinct allocation.
- storage_
liveness π
StructsΒ§
- Ever
Initialized Places EverInitializedPlacestracks all initializations of locals that may have occurred upon reaching a particular point in the control flow for a function, without an interveningStorageDead.- Liveness
Transfer Function - Maybe
Borrowed Locals - A dataflow analysis that tracks whether a pointer or reference could possibly exist that points to a given local. This analysis ignores fake borrows, so it should not be used by borrowck.
- Maybe
Initialized Places MaybeInitializedPlacestracks all places that might be initialized upon reaching a particular point in the control flow for a function.- Maybe
Live Locals - A live-variable dataflow analysis.
- Maybe
Requires Storage - Dataflow analysis that determines whether each local requires storage at a given location; i.e. whether its storage can go away without being observed.
- Maybe
Storage Dead - Maybe
Storage Live - Maybe
Transitive Live Locals - Like
MaybeLiveLocals(and layered on top ofMaybeLiveLocals), but does not mark locals as live if they are used in a dead assignment. - Maybe
Uninitialized Places MaybeUninitializedPlacestracks all places that might be uninitialized upon reaching a particular point in the control flow for a function.- Split
Point Index - A
PointIndexwith the lower bit encoding early/late inside a statement. - Visit
Allocated Locals With - Visits locals that are implicitly allocated by a statement or terminator as part of destination place evaluation.
- Visit
Deallocated Locals With - Visits locals that are implicitly freed by being evaluated as a bare-local move operand or through a storage statement.
EnumsΒ§
- DefUse
- Split
Point Effect - Different βphasesβ of a single MIR statement, used to describe how overlapping operands are handled.
FunctionsΒ§
- always_
storage_ live_ locals - The set of locals in a MIR body that do not have
StorageLive/StorageDeadannotations. - borrowed_
locals - The set of locals that are borrowed at some point in the MIR body.
- dump_
liveness_ matrix - liveness_
matrix
Type AliasesΒ§
- Ever
Initialized Places Domain - Maybe
Uninitialized Places Domain - There can be many more
MovePathIndexthan there are locals in a MIR body. We use a mixed bitset to avoid paying too high a memory footprint.