This is the heart of the liveness computation. For each variable X
that requires a liveness computation, it walks over all the uses
of X and does a reverse depth-first search (“trace”) through the
MIR. This search stops when we find a definition of that variable.
The points visited in this search is the USE-LIVE set for the variable;
of those points is added to all the regions that appear in the variable’s
type.