[Bug middle-end/56113] out of memory when compiling a function with many goto labels (50k > )

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jan 30 15:41:00 GMT 2013


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  <rguenther@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).



More information about the Gcc-bugs mailing list