https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62291
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- As said in the mail for the just applied patch: "The second patch (once done) will refactor insertion phase to do a dominator walk similar to what elimination does computing AVAIL_OUT on-the-fly (and only keeping it live for a single block). It's a bit more complicated than for elimination as insertion looks at a block and all its predecessors, it's also a bit more costly as we iterate insertion. It's also more costly because computing AVAIL_OUT on-the-fly requires looking at all statements which insertion currently doesn't do at all. So I've not yet settled on a final idea how to best re-factor it, eventually insertion and elimination can be merged (and then still iterate(?)). Ideas welcome ;)"