http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56113



--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> 2013-01-30 
15:40:57 UTC ---

(In reply to comment #16)

> 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 ...



Multiple exits.



Btw, it's all virtual loop-closed PHI nodes we insert.  Thus, reverting



2012-08-23  Richard Guenther  <rguent...@suse.de>



        * tree-ssa-loop-manip.c (add_exit_phis_var): Allow virtual operands.

        (find_uses_to_rename_use): Likewise.

        (find_uses_to_rename_bb): Likewise.

        (find_uses_to_rename_stmt): Walk over all operands.



improves compile-time here (until somebody fixes the testcase so there is

a real use on each exit).

Reply via email to