[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #16 from rguenth at gcc dot gnu dot org 2008-06-23 10:13 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #15 from rguenther at suse dot de 2008-06-14 22:04 --- Subject: Re: [4.3 Regression] time/memory hog for large c++ source. On Fri, 13 Jun 2008, mmitchel at gcc dot gnu dot org wrote: Richard -- Is this still an issue, after your patch? It's still 4 times slower and uses twice as much memory. It will be fixed with the partitioning patch I posted yesterday. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #13 from rguenth at gcc dot gnu dot org 2008-06-13 08:42 --- Subject: Bug 36498 Author: rguenth Date: Fri Jun 13 08:41:45 2008 New Revision: 136744 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=136744 Log: 2008-06-13 Richard Guenther [EMAIL PROTECTED] PR tree-optimization/36498 * tree-flow-inline.h (var_can_have_subvars): Unions cannot have subvars. Modified: branches/gcc-4_3-branch/gcc/ChangeLog branches/gcc-4_3-branch/gcc/tree-flow-inline.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #14 from mmitchel at gcc dot gnu dot org 2008-06-13 21:53 --- Richard -- Is this still an issue, after your patch? Thanks, -- Mark -- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #1 from pluto at agmk dot net 2008-06-11 14:05 --- Created an attachment (id=15749) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15749action=view) testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #2 from pluto at agmk dot net 2008-06-11 14:10 --- testcase tested with: $ i486-gnu-linux-g++ -g0 -O2 -std=gnu++0x -fno-threadsafe-statics -fPIC hescoreScr.ii -c gdb report still the same backtrace: (gdb) bt #0 0x0066891b in set_bb_for_stmt () #1 0x0069c4cb in create_phi_node () #2 0x0068d066 in insert_phi_nodes_for () #3 0x0068d3e8 in insert_updated_phi_nodes_for () #4 0x0068e59c in update_ssa () #5 0x006bd21a in compute_may_aliases () #6 0x005f2c8a in execute_function_todo () #7 0x005f274d in execute_todo () #8 0x005f294a in execute_one_pass () #9 0x005f2a9c in execute_pass_list () #10 0x005f2aae in execute_pass_list () #11 0x00695892 in tree_rest_of_compilation () #12 0x00792902 in cgraph_expand_function () #13 0x0079404e in cgraph_optimize () #14 0x004482ef in cp_write_global_declarations () #15 0x0066362e in toplev_main () #16 0x2b69a416c4a4 in __libc_start_main () from /lib64/libc.so.6 #17 0x004023a9 in _start () -- pluto at agmk dot net changed: What|Removed |Added GCC target triplet||i486-gnu-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #3 from rguenth at gcc dot gnu dot org 2008-06-11 14:46 --- Eventually the fix for PR36154 may be the cause. Can you check backing out 2008-05-08 Richard Guenther [EMAIL PROTECTED] PR middle-end/36154 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make sure to create a representative for trailing arrays for PTA. ? Or the fix for PR36339, which would be 2008-05-28 Richard Guenther [EMAIL PROTECTED] PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Move pt_anything and subvariable clobbering code out of the loop. 2008-05-27 Richard Guenther [EMAIL PROTECTED] PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything pointers cause all addressable variables to be call clobbered. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #4 from rguenth at gcc dot gnu dot org 2008-06-11 14:55 --- Created an attachment (id=15750) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15750action=view) unincluded testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #5 from rguenth at gcc dot gnu dot org 2008-06-11 15:20 --- The offending function is virtual bool hcScr::hescoreScr::init(Tcl_Interp*, hc::IAccessBase*, vcm::vcmptrcfgmgr::IConfigManager) but probably only after inlining. The trunk is fine, as is compiling with --param max-fields-for-field-sensitive=0. Most of the time/memory is spent in update_ssa () in phi-insertion. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords||compile-time-hog, memory-hog Known to work|4.3.0 |4.3.0 4.4.0 Last reconfirmed|-00-00 00:00:00 |2008-06-11 15:20:43 date|| Target Milestone|--- |4.3.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #6 from pluto at agmk dot net 2008-06-11 19:27 --- this patch causes regression. r135125 | rguenth | 2008-05-09 21:19:33 +0200 (Fri, 09 May 2008) | 10 lines 2008-05-09 Richard Guenther [EMAIL PROTECTED] PR tree-optimization/36187 * tree-dfa.c (dump_variable): Correct dumping of SFT_BASE_FOR_COMPONENTS_P. * tree-ssa-structalias.c (set_uids_in_ptset): Set SFT_UNPARTITIONABLE_P correctly for the union case. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #7 from rguenth at gcc dot gnu dot org 2008-06-11 19:36 --- Then the following should fix it. Index: tree-flow-inline.h === --- tree-flow-inline.h (revision 135770) +++ tree-flow-inline.h (working copy) @@ -1712,6 +1712,11 @@ var_can_have_subvars (const_tree v) if (!DECL_P (v) || MTAG_P (v)) return false; + /* Unions cannot have subvars. */ + if (TREE_CODE (TREE_TYPE (v)) == UNION_TYPE + || TREE_CODE (TREE_TYPE (v)) == QUAL_UNION_TYPE) +return false; + /* Aggregates can have subvars. */ if (AGGREGATE_TYPE_P (TREE_TYPE (v))) return true; -- rguenth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-06-11 15:20:43 |2008-06-11 19:36:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #8 from pluto at agmk dot net 2008-06-11 20:14 --- (In reply to comment #7) Then the following should fix it. Index: tree-flow-inline.h === --- tree-flow-inline.h (revision 135770) +++ tree-flow-inline.h (working copy) @@ -1712,6 +1712,11 @@ var_can_have_subvars (const_tree v) if (!DECL_P (v) || MTAG_P (v)) return false; + /* Unions cannot have subvars. */ + if (TREE_CODE (TREE_TYPE (v)) == UNION_TYPE + || TREE_CODE (TREE_TYPE (v)) == QUAL_UNION_TYPE) +return false; + /* Aggregates can have subvars. */ if (AGGREGATE_TYPE_P (TREE_TYPE (v))) return true; with this change g++ needs ~1GB and ~4minutes. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #9 from rguenth at gcc dot gnu dot org 2008-06-11 20:41 --- Hm, the patch in comment #6 only affects the case where we have a union with subvars. Did you check that just reverting this patch brings us back to 580MB and 1min32? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #10 from pluto at agmk dot net 2008-06-11 20:50 --- (In reply to comment #9) Hm, the patch in comment #6 only affects the case where we have a union with subvars. Did you check that just reverting this patch brings us back to 580MB and 1min32? yes, i've checked r135124 and it needs only ~580MB. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #11 from rguenth at gcc dot gnu dot org 2008-06-11 21:04 --- Ah, but that test also reverts all followup patches, like 2008-05-28 Richard Guenther [EMAIL PROTECTED] PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Move pt_anything and subvariable clobbering code out of the loop. 2008-05-27 Richard Guenther [EMAIL PROTECTED] PR tree-optimization/36339 * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything pointers cause all addressable variables to be call clobbered. so, did you apply the patch in comment #7 on top of r135125 or on top of the branch head? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498
[Bug other/36498] [4.3 Regression] time/memory hog for large c++ source.
--- Comment #12 from pluto at agmk dot net 2008-06-11 21:17 --- (In reply to comment #11) Ah, but that test also reverts all followup patches, like (...) so, did you apply the patch in comment #7 on top of r135125 or on top of the branch head? on top of the branch head (r136662). summary: r135124 needs max. 580MB(the 'virt' column from htop)/~1.5min r135125 and newer needs at least 4.3GB/14min. r136662 with suggested patch needs ~1GB/4min. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36498