https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64164
--- Comment #28 from Jeffrey A. Law <law at redhat dot com> --- So I've been thinking about how to integrate life/conflict analysis into the uncprop code and it may not be that bad, both from an implementation and computation standpoint. Most importantly, we don't have to compute full life information. We really just need to compute the life of the equivalence. Given the life of the equivalence, if the equivalence is live in any block that contains the defining statement for an SSA_NAME appearing in the target PHI, then the equivalence conflicts and we don't want to unpropagate it. Computing the life of the equivalence is pretty easy and should be reasonably quick. This is a cost we'd have to pay regardless of whether or not we integrate uncprop with out-of-ssa since we won't have life information for the expression. Collecting the SSA_NAMEs appearing on the RHS of the PHI so that we don't test for conflicts multiple times if an SSA_NAME shows up in multiple PHI alternatives would help keep the cost down as well. Ultimately I don't think we need to integrate uncprop and out-of-ssa to avoid the unprofitable transformation during uncprop.