https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89497

--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 45836
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45836&action=edit
patch I am testing

So we can now properly "order" CFG cleanup and SSA update by interleaving them.

There's the slight chance that we run update_ssa twice, but the comment looks
outdated and I wonder what would trigger it:

      /* When cleanup_tree_cfg merges consecutive blocks, it may
         perform some simplistic propagation when removing single
         valued PHI nodes.  This propagation may, in turn, cause the
         SSA form to become out-of-date (see PR 22037).  So, even
         if the parent pass had not scheduled an SSA update, we may
         still need to do one.  */
      if (!(flags & TODO_update_ssa_any) && need_ssa_update_p (cfun))
        flags |= TODO_update_ssa;

Reply via email to