[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