http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56113
--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-30 14:38:29 UTC --- The following (old!?) idea helps though: Index: gcc/tree-ssa-loop-manip.c =================================================================== --- gcc/tree-ssa-loop-manip.c (revision 195574) +++ gcc/tree-ssa-loop-manip.c (working copy) @@ -536,7 +536,7 @@ rewrite_into_loop_closed_ssa (bitmap cha /* Fix up all the names found to be used outside their original loops. */ - update_ssa (TODO_update_ssa); + update_ssa (TODO_update_ssa_no_phi); } /* Check invariants of the loop closed ssa form for the USE in BB. */ why would adding a copy on an edge (thus a new def) require us to insert new PHI nodes? With that patch: tree SSA incremental : 0.06 ( 0%) usr TOTAL : 46.36 Of course I must not remember sth here ...