http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58402
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, so the testcase requires that 1) critical edges are split (before PRE which isn't run at -O1) 2) the next CFG cleanup (after copyprop) will end up removing the forwarders in a way building up a tree-argument PHI 3) PHI-OPT executes for the third time, this time with the exact right CFG / PHI node present my patch obfuscates the CFG gain by splitting edges and no CFG cleanup running inbetween that and the late PHI-OPT pass.