This pass adds validation calls (AcquireValid, ReleaseValid) where appropriate. It has to be run really early, before transformations like inlining, because introducing these calls adds UB – so, conceptually, this pass is actually part of MIR building, and only after this pass we think of the program has having the normal MIR semantics.
- Determine whether this type may contain a reference (or box), and thus needs retagging. We will only recurse
depthtimes into Tuples/ADTs to bound the cost of this.