Earlier, LFTR would introduce branches on values that could
potentially be poison. This change fixes the issue by demoting the
value LFTR is about to introduce a branch on to a non-poison variant
of itself whenever it cannot statically prove that it isn't poison.
Fixes PR31181.
Ok, seeing the usage here, I think this is probably the wrong interface for the problem even if we want to pursue this approach. I think we'd be much better off with an analysis which provided an interface for asking whether a given Instruction is known to be non-poison. Your IV analysis could be used, but you could also walk forward through uses to by-assumption non-poison use as well.