We do not resolve undefs for tracked functions in ResolvedUndefsIn. For
instructions that depend on results of tracked functions, we can skip
them in ResolvedUndefsIn, to avoid going to overdefined before we know
the function result. This allows us to cover a few more cases. This
should be safe; once we resolved the call result, we propagate it to all
users. Note that phis depending on tracked functions will still be
marked as overdefined early in some cases (e.g. loops).
Similarly, we can skip instructions depending on unknown function
arguments for tracked functions.
Before marking it as ready for review, I'd like to do some additional
testing.
Out of scope: Isn't branch on undef UB?