https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109940
rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |rsandifo at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- Guess that makes it mine. :) It's been a few years since I wrote this code, but I vaguely remember hitting the problem that the DF walk orders weren't the “natural” ones, and having to work around it. The code iterates backwards over what was the DF_BACKWARD postorder, which I think was the workaround. Now that DF_BACKWARD (correctly) gives an RPO over a backward traversal, and DF_FORWARD is a true forward RPO, the fix will probably be to switch from using DF_BACKWARD to DF_FORWARD.