[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #13 from rguenth at gcc dot gnu dot org 2009-12-13 22:18 --- Mark as dup of a single "vartracking is slow with VTA" bug. *** This bug has been marked as a duplicate of 41371 *** -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #12 from matz at gcc dot gnu dot org 2009-10-14 06:14 --- Yeah, I'm sorry, I attached the testcase to the wrong bug report as said in comment #5. It was about combinatoric explosion not about slow var-tracking. I should probably have deleted the attachment from here. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #11 from aoliva at gcc dot gnu dot org 2009-10-14 05:01 --- Subject: Bug 41264 Author: aoliva Date: Wed Oct 14 05:01:24 2009 New Revision: 152749 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152749 Log: PR debug/41343 PR debug/41447 PR debug/41264 PR debug/41338 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses decl with rtl. (tree_code_size): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #10 from aoliva at gcc dot gnu dot org 2009-10-13 20:08 --- This means the testcase labeled pr41264-test.c was totally unrelated to the original bug report :-( Oh well... I'll add the other testcase to my ongoing efforts to speed up var-tracking. I'm working on that on two fronts: 1. speed up dataflow analysis while reducing memory use, by chaining and partially-sharing variable hash tables, and speeding up lookups with bit-fields. 2. speed up emission of notes by caching the results of expanding location expressions, rather than repeatedly expanding then and often throwing the results away I'm afraid both of these are lower priority than wrong debug-info introduced in the scheduler, as in bug 41535. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #9 from rguenth at gcc dot gnu dot org 2009-10-13 12:07 --- It's not fixed. variable tracking : 480.87 (90%) usr 1.42 (54%) sys 482.57 (90%) wall 22699 kB ( 5%) ggc it's even got slower. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #8 from aoliva at gcc dot gnu dot org 2009-10-12 20:01 --- Fixed -- aoliva at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #7 from aoliva at gcc dot gnu dot org 2009-10-12 18:59 --- Subject: Bug 41264 Author: aoliva Date: Mon Oct 12 18:58:38 2009 New Revision: 152681 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152681 Log: gcc/ChangeLog: PR debug/41343 PR debug/41447 PR debug/41264 PR debug/41338 * tree.def (DEBUG_EXPR_DECL): New. * rtl.def (DEBUG_EXPR): New. * gengtype.c (adjust_field_rtx_def): Handle it. * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to... (insert_debug_temp_for_var_def): ... this. Drop support for moving. Take iterator for def stmt; insert debug stmt before it. Scan early for use count and kind in debug stmts. (propagate_defs_into_debug_stmts): Rename to... (insert_debug_temps_for_defs): ... this. Likewise. * tree.h (DEBUG_TEMP_UID): New. * tree.c (next_debug_decl_uid): New. (make_node_stat): Count debug decls separately. (copy_node_stat): Likewise. * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL. * var-tracking.c (dv_is_decl_p): Recognize it. (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too. (track_expr_p): Track expanded DEBUG_EXPR_DECLs. (vt_expand_loc_callback): Expand DEBUG_EXPRs. (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs. * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR. (cselib_hash_rtx): Likewise. (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR. * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in debug bind stmts. * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE. (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise. * rtl.c (copy_rtx): Likewise. (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR. * print-rtl.c (print_rtx): Likewise. * sched-vis.c (print_value): Likewise. (print_insn): Handle DEBUG_EXPR_DECL. * tree-dump.c (dequeue_and_dump): Likewise. * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise. * gimple-iterator (gsi_replace): Check for same lhs. (gsi_remove): Insert debug temps. * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs. (move_computations_stmt): Drop explicit propagation into debug stmts. (rewrite_bittest): Likewise. Use gsi_remove for propagation. * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise. * tree-ssa-sink.c (statement_sink_location): Likewise. * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise. * tree-ssanames.c (release_ssa_name): Adjust for rename. * tree-flow.h: Likewise. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark debug temps without values. (eliminate_unnecessary_stmts): Don't discard just-inserted debug stmts. gcc/testsuite/ChangeLog: PR debug/41343 PR debug/41447 PR debug/41264 PR debug/41338 * gcc.dg/guality/pr41447-1.c: New. * gcc.dg/debug/pr41264-1.c: New. * gcc.dg/debug/pr41343-1.c: New. Added: trunk/gcc/testsuite/gcc.dg/debug/pr41264-1.c trunk/gcc/testsuite/gcc.dg/debug/pr41343-1.c trunk/gcc/testsuite/gcc.dg/guality/pr41447-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/cfgexpand.c trunk/gcc/cselib.c trunk/gcc/emit-rtl.c trunk/gcc/gengtype.c trunk/gcc/gimple-iterator.c trunk/gcc/print-rtl.c trunk/gcc/rtl.c trunk/gcc/rtl.def trunk/gcc/sched-vis.c trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-dump.c trunk/gcc/tree-flow.h trunk/gcc/tree-pretty-print.c trunk/gcc/tree-ssa-dce.c trunk/gcc/tree-ssa-forwprop.c trunk/gcc/tree-ssa-loop-im.c trunk/gcc/tree-ssa-operands.c trunk/gcc/tree-ssa-reassoc.c trunk/gcc/tree-ssa-sink.c trunk/gcc/tree-ssa.c trunk/gcc/tree-ssanames.c trunk/gcc/tree.c trunk/gcc/tree.def trunk/gcc/tree.h trunk/gcc/var-tracking.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #6 from aoliva at gcc dot gnu dot org 2009-10-06 04:38 --- The patch that introduces debug temps fixes this problem: http://gcc.gnu.org/ml/gcc-patches/2009-10/msg00112.html -- aoliva at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |aoliva at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #5 from matz at gcc dot gnu dot org 2009-10-03 23:22 --- Hmpf, sorry, I think this bug report might be about something else. The exponential explosion is actually tracked in PR41343. I've attached the testcase there. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #4 from matz at gcc dot gnu dot org 2009-10-03 22:50 --- Created an attachment (id=18699) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18699&action=view) pr41264-test.c Compile this with % ./cc1 -O2 -g pr41264-test.c and cry. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #3 from matz at gcc dot gnu dot org 2009-10-03 22:49 --- Found a nice testcase for exponential explosion. It's reduced from tree.c (make_vector_type) when building with -fprofile-generate. The testcase needs simply "-O2 -g" and takes a ridiculous amount of > 4GB RAM. It's the tree-ssa-sink pass that triggers this in this case (with slight variations in the testcase I can also make it blow up in RTL fwprop). This means btw. that profiledbootstrap is broken. -- matz at gcc dot gnu dot org changed: What|Removed |Added CC||matz at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-03 22:49:10 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-09-04 14:02 --- Memory usage doubles. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Keywords||memory-hog http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264
[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-09-04 13:53 --- Created an attachment (id=18494) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18494&action=view) testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41264