[Bug middle-end/41264] [4.5 Regression] variable-tracking unbelievably slow

2009-12-13 Thread rguenth at gcc dot gnu dot org


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

2009-10-24 Thread rguenth at gcc dot gnu dot org


-- 

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

2009-10-13 Thread matz at gcc dot gnu dot org


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

2009-10-13 Thread aoliva at gcc dot gnu dot org


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

2009-10-13 Thread aoliva at gcc dot gnu dot org


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

2009-10-13 Thread rguenth at gcc dot gnu dot org


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

2009-10-12 Thread aoliva at gcc dot gnu dot org


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

2009-10-12 Thread aoliva at gcc dot gnu dot org


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

2009-10-05 Thread aoliva at gcc dot gnu dot org


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

2009-10-03 Thread matz at gcc dot gnu dot org


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

2009-10-03 Thread matz at gcc dot gnu dot org


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

2009-10-03 Thread matz at gcc dot gnu dot org


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

2009-09-04 Thread rguenth at gcc dot gnu dot org


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

2009-09-04 Thread rguenth at gcc dot gnu dot org


-- 

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

2009-09-04 Thread rguenth at gcc dot gnu dot org


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