We can use a RPO traversal in liveness to try to minimize the number of iterations we need, as suggested by @AndyAyersMS in #86043 (comment).
Another interesting experiment would be to compute strongly connected components and compute the fixpoint within each SCC.