https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119099
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Jeffrey A. Law from comment #3) > Bi-directional dataflow is notoriously hard to get correct and I have zero > confidence this code handles that reasonably. I thought I had some checks > for this, though I don't immediately see them. Well, if it's really a bi-directional dataflow then it shouldn't simply iterate a DF_BACKWARD problem and do the forward problem somehow internally, that's likely quite bad for convergence. Usually you'd split the problem into a forward and a backward part so you can iterate it like forward, backward, forward, backward, etc. instead - you'd also avoid "converging" the individual forward and backward steps individually. I didn't see any obvious parts that are FORWARD in ext-dce, just those odd "local" re-computes during the backward iteration.