Combines liveness analysis with initialization analysis to
determine which variables are live at which points, both due to
ordinary uses and drops. Returns a set of (ty, location) pairs
that indicate which types must be live at which point in the CFG.
This vector is consumed by
Some variables are “regular live” at
location – i.e., they may be used later. This means that
all regions appearing in their type must be live at
Computes all regions that are (currently) known to outlive free
regions. For these regions, we do not need to compute
liveness, since the outlives constraints will ensure that they
are live over the whole fn body anyhow.