[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #54 from dnovillo at gcc dot gnu dot org 2005-10-18 15:32 --- Closing. As discussed earlier, for all intents and purposes this is fixed. -- dnovillo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #50 from dnovillo at gcc dot gnu dot org 2005-10-17 16:33 --- This program no longer crashes cc1plus. I propose to close this PR. I don't see anything obvious left to do that could be justified for 4.1. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #51 from law at redhat dot com 2005-10-17 16:46 --- Subject: Re: [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file On Mon, 2005-10-17 at 16:34 +, dnovillo at gcc dot gnu dot org wrote: --- Comment #50 from dnovillo at gcc dot gnu dot org 2005-10-17 16:33 --- This program no longer crashes cc1plus. I propose to close this PR. I don't see anything obvious left to do that could be justified for 4.1. You might consider opening a 4.2 PR since there are definitely things that could be further improved from a compile-time standpoint for the code referenced in this PR. jeff -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #52 from dnovillo at gcc dot gnu dot org 2005-10-17 17:32 --- Mark, there's probably not much else we can do in this PR for 4.1. What I see in the aliasing times involves quite a few changes, most of them from the aliasing branch and some other similarly intrusive changes I've got on the side. Other than that, the timings are now relatively reasonable. How do you want to handle this? -- dnovillo at gcc dot gnu dot org changed: What|Removed |Added CC||mmitchel at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #53 from mark at codesourcery dot com 2005-10-17 20:30 --- Subject: Re: [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file dnovillo at gcc dot gnu dot org wrote: --- Comment #52 from dnovillo at gcc dot gnu dot org 2005-10-17 17:32 --- Mark, there's probably not much else we can do in this PR for 4.1. What I see in the aliasing times involves quite a few changes, most of them from the aliasing branch and some other similarly intrusive changes I've got on the side. Other than that, the timings are now relatively reasonable. How do you want to handle this? The original report was about crashing. Now we don't. So, clearly, this PR should be closed. If you think that we should still be able to do better in terms of compile-time performance or memory usage, please open a new PR, targeted at 4.2. Thanks, -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #48 from cvs-commit at gcc dot gnu dot org 2005-10-07 10:54 --- Subject: Bug 15855 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-4_0-branch Changes by: [EMAIL PROTECTED] 2005-10-07 10:54:10 Modified files: gcc/cp : ChangeLog decl2.c Log message: 2005-10-07 Richard Guenther [EMAIL PROTECTED] Backport from mainline 2005-09-26 Richard Guenther [EMAIL PROTECTED] PR middle-end/15855 * decl2.c (do_static_destruction): Remove. (finish_static_initialization_or_destruction): Likewise. (DECL_EFFECTIVE_INIT_PRIORITY): New macro. (NEEDS_GUARD_P): Likewise. (do_static_initialization): Rename to do_static_initialization_or_destruction. Process all initializers/destructors and handle common conditionalizing. (start_static_initialization_or_destruction): Rename to one_static_initialization_or_destruction. Handle only decl-specific conditionalizing. (cp_finish_file): Call do_static_initialization_or_destruction. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.4648.2.118r2=1.4648.2.119 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl2.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.770.2.9r2=1.770.2.10 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Comment #49 from rguenth at gcc dot gnu dot org 2005-10-07 11:17 --- So trying to get some updated comparison I noticed that the testcase fails to compile with 3.3.x and compared to 3.4.x we have improved a lot wrt -O2 compile-time: 3.4: 1m32s, peak at 230MB 4.1:48s, peak at 480MB Still we are using too much memory. Time-report for 4.1 does no longer show obvious problems: Execution times (seconds) garbage collection: 0.50 ( 1%) usr 0.00 ( 0%) sys 0.50 ( 1%) wall 0 kB ( 0%) ggc callgraph construction: 0.17 ( 0%) usr 0.01 ( 0%) sys 0.19 ( 0%) wall 1898 kB ( 0%) ggc callgraph optimization: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 422 kB ( 0%) ggc ipa reference : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 97 kB ( 0%) ggc ipa pure const: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 0 kB ( 0%) ggc ipa type escape : 0.12 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 0 kB ( 0%) ggc cfg construction : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 589 kB ( 0%) ggc cfg cleanup : 0.26 ( 1%) usr 0.00 ( 0%) sys 0.27 ( 1%) wall 511 kB ( 0%) ggc trivially dead code : 0.19 ( 0%) usr 0.00 ( 0%) sys 0.23 ( 0%) wall 0 kB ( 0%) ggc life analysis : 1.43 ( 3%) usr 0.00 ( 0%) sys 1.41 ( 3%) wall 91 kB ( 0%) ggc life info update : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 0%) wall 11 kB ( 0%) ggc alias analysis: 0.19 ( 0%) usr 0.00 ( 0%) sys 0.20 ( 0%) wall 3249 kB ( 1%) ggc register scan : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.18 ( 0%) wall 49 kB ( 0%) ggc rebuild jump labels : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 0 kB ( 0%) ggc preprocessing : 0.52 ( 1%) usr 0.29 (11%) sys 0.78 ( 1%) wall 732 kB ( 0%) ggc parser: 3.27 ( 7%) usr 0.42 (15%) sys 3.84 ( 7%) wall 121022 kB (21%) ggc name lookup : 0.65 ( 1%) usr 0.48 (18%) sys 1.15 ( 2%) wall 9424 kB ( 2%) ggc inline heuristics : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall 1163 kB ( 0%) ggc integration : 0.90 ( 2%) usr 0.02 ( 1%) sys 0.93 ( 2%) wall 46704 kB ( 8%) ggc tree gimplify : 0.41 ( 1%) usr 0.01 ( 0%) sys 0.47 ( 1%) wall 7205 kB ( 1%) ggc tree eh : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 1725 kB ( 0%) ggc tree CFG construction : 0.04 ( 0%) usr 0.03 ( 1%) sys 0.06 ( 0%) wall 5236 kB ( 1%) ggc tree CFG cleanup : 0.25 ( 1%) usr 0.02 ( 1%) sys 0.29 ( 1%) wall 332 kB ( 0%) ggc tree VRP : 0.37 ( 1%) usr 0.05 ( 2%) sys 0.44 ( 1%) wall 2375 kB ( 0%) ggc tree copy propagation : 1.22 ( 2%) usr 0.23 ( 8%) sys 1.43 ( 3%) wall 997 kB ( 0%) ggc tree store copy prop : 0.09 ( 0%) usr 0.06 ( 2%) sys 0.16 ( 0%) wall 202 kB ( 0%) ggc tree find ref. vars : 0.09 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall 6215 kB ( 1%) ggc tree PTA : 1.80 ( 4%) usr 0.03 ( 1%) sys 1.88 ( 4%) wall 4061 kB ( 1%) ggc tree alias analysis : 3.18 ( 6%) usr 0.08 ( 3%) sys 3.40 ( 6%) wall 5523 kB ( 1%) ggc tree PHI insertion: 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 459 kB ( 0%) ggc tree SSA rewrite : 1.80 ( 4%) usr 0.14 ( 5%) sys 2.00 ( 4%) wall 120115 kB (21%) ggc tree SSA other: 0.17 ( 0%) usr 0.03 ( 1%) sys 0.19 ( 0%) wall 0 kB ( 0%) ggc tree SSA incremental : 4.90 (10%) usr 0.05 ( 2%) sys 4.86 ( 9%) wall 5152 kB ( 1%) ggc tree operand scan : 3.98 ( 8%) usr 0.29 (11%) sys 4.21 ( 8%) wall 58117 kB (10%) ggc dominator optimization: 1.70 ( 3%) usr 0.04 ( 1%) sys 1.81 ( 3%) wall 100326 kB (17%) ggc tree SRA : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 17 kB ( 0%) ggc tree STORE-CCP: 0.15 ( 0%) usr 0.02 ( 1%) sys 0.11 ( 0%) wall 193 kB ( 0%) ggc tree CCP : 0.54 ( 1%) usr 0.03 ( 1%) sys 0.56 ( 1%) wall 923 kB ( 0%) ggc tree split crit edges : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 820 kB ( 0%) ggc tree reassociation: 0.03 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 0 kB ( 0%) ggc tree PRE : 0.34 ( 1%) usr 0.00 ( 0%) sys 0.30 ( 1%) wall 2854 kB ( 0%) ggc tree FRE : 0.32 ( 1%) usr 0.03 ( 1%) sys 0.33 ( 1%) wall 3726 kB ( 1%) ggc tree code sinking : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 78 kB ( 0%) ggc tree linearize phis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 63 kB ( 0%) ggc tree forward propagate: 0.19 ( 0%) usr 0.00 ( 0%) sys 0.19 ( 0%) wall 1127 kB ( 0%) ggc tree conservative DCE : 0.49 ( 1%) usr 0.00 ( 0%) sys 0.52 ( 1%) wall 0 kB ( 0%) ggc tree aggressive DCE : 0.07 ( 0%) usr 0.00 ( 0%) sys
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
-- What|Removed |Added Target Milestone|4.0.2 |4.0.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-09-26 08:38 --- Subject: Bug 15855 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-09-26 08:38:32 Modified files: gcc: ChangeLog gcse.c Log message: 2005-09-26 Richard Guenther [EMAIL PROTECTED] PR middle-end/15855 * gcse.c: Include hashtab.h, define ldst entry hashtable. (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions. (ldst_entry): Use the hashtable instead of list-walking. (find_rtx_in_ldst): Likewise. (free_ldst_entry): Free the hashtable. (compute_ld_motion_mems): Create the hashtable. (trim_ld_motion_mems): Remove entry from hashtable if removing it from list. (compute_store_table): Likewise^2. (store_motion): Free hashtable in case we did not see any stores. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.10020r2=2.10021 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gcse.c.diff?cvsroot=gccr1=1.348r2=1.349 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-09-26 08:43 --- Subject: Bug 15855 CVSROOT:/cvs/gcc Module name:gcc Changes by: [EMAIL PROTECTED] 2005-09-26 08:43:00 Modified files: gcc/cp : ChangeLog decl2.c Log message: 2005-09-26 Richard Guenther [EMAIL PROTECTED] PR middle-end/15855 * decl2.c (do_static_destruction): Remove. (finish_static_initialization_or_destruction): Likewise. (DECL_EFFECTIVE_INIT_PRIORITY): New macro. (NEEDS_GUARD_P): Likewise. (do_static_initialization): Rename to do_static_initialization_or_destruction. Process all initializers/destructors and handle common conditionalizing. (start_static_initialization_or_destruction): Rename to one_static_initialization_or_destruction. Handle only decl-specific conditionalizing. (cp_finish_file): Call do_static_initialization_or_destruction. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gccr1=1.4901r2=1.4902 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl2.c.diff?cvsroot=gccr1=1.802r2=1.803 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-09-16 08:14 --- For a cut-down testcase (the one attached takes too much memory for my box) detailled mem-report shows tree-dfa.c:175 (create_stmt_ann) 12749568: 2.0%2932228: 1.0% 52: 0.0% 0: 0.0% 301574 tree-inline.c:2403 (copy_tree_r) 19285144: 3.0% 0: 0.0% 0: 0.0% 162184: 0.3% 537068 tree-ssanames.c:147 (make_ssa_name) 201319404:31.0% 0: 0.0% 12792: 0.0% 0: 0.0%3871773 tree-phinodes.c:156 (allocate_phi_node) 250714968:38.6% 0: 0.0% 0: 0.0% 11480: 0.0%1956706 Total 649892049291182446 47860808 47260199 12874808 source location GarbageFreed Leak OverheadTimes where the ssa_names / phi_nodes are all allocated by DOM. From the time-report: tree SSA incremental : 19.21 (11%) usr 2.02 (30%) sys 21.23 (12%) wall 365332 kB (40%) ggc tree operand scan : 22.06 (13%) usr 0.26 ( 4%) sys 22.47 (12%) wall 58811 kB ( 6%) ggc dominator optimization: 19.14 (11%) usr 0.13 ( 2%) sys 19.37 (11%) wall 111380 kB (12%) ggc -- What|Removed |Added CC||rguenth at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-09-15 22:05 --- Now we have again (?? appeared not too long ago) DOM taking all time and memory threading 1 times repeating if (__priority == 65535) { if (__initialize_p == 0) { __comp_dtor (__ioinit); } else { } } else { } in __static_initialization Ugh. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-09-12 10:52 --- The second testcase works for me on current mainline if adding a class UltraRoot forward declaration at the top. It takes around 1m30 to compile and uses up max. 522913kB of memory (1GB box, P4 2.8GHz) at -O2. Still aliasing accounts for the most time: samples %image name symbol name 694 26.6411 cc1plus add_stmt_operand 209 8.0230 cc1plus ldst_entry 193 7.4088 cc1plus create_ssa_artficial_load_stmt 181 6.9482 cc1plus compute_global_livein 572.1881 cc1plus bitmap_bit_p 501.9194 no-vmlinux (no symbols) 451.7274 cc1plus compute_may_aliases 421.6123 cc1plus invalidate 361.3820 cc1plus bitmap_ior_and_compl_into 351.3436 cc1plus bitmap_set_bit 351.3436 cc1plus for_each_rtx_1 331.2668 cc1plus check_dependence 291.1132 cc1plus splay_tree_splay_helper 281.0749 cc1plus htab_find_slot_with_hash The 2nd is from GCSE, 3rd from DOM, 4th from either into-ssa or ssa-loop-manip. Time-report: tree SSA incremental : 14.27 (17%) usr 0.11 ( 3%) sys 14.46 (16%) wall 12827 kB ( 2%) ggc tree operand scan : 15.62 (18%) usr 0.27 ( 8%) sys 15.93 (18%) wall 59212 kB (10%) ggc dominator optimization: 8.67 (10%) usr 0.05 ( 1%) sys 8.64 (10%) wall 110089 kB (19%) ggc PRE : 6.14 ( 7%) usr 0.01 ( 0%) sys 6.13 ( 7%) wall 536 kB ( 0%) ggc ldst_entry is walking a list to find an element by hash-id. Throw some memory at it to add a real hashtable for lookup besides the list. The DOM stuff looks like value numbering still in DOM, hopefully it will be ripped out. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From phython at gcc dot gnu dot org 2005-08-12 06:21 --- On ia64-linux postreload-gcse does exactly nothing and takes 35% of the compile time at -O1 -fgcse-after-reload. I didn't finish a build at -O2. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From wilson at specifix dot com 2005-08-12 19:07 --- Subject: Re: [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file phython at gcc dot gnu dot org wrote: --- Additional Comments From phython at gcc dot gnu dot org 2005-08-12 06:21 --- On ia64-linux postreload-gcse does exactly nothing and takes 35% of the compile time at -O1 -fgcse-after-reload. I didn't finish a build at -O2. What testcase and compiler version are you using for this? I tried taking a look, but wasn't able to reproduce any problem. I was able to compile both testcases in the PR at -O2 in about 20 secs and about 200MB. Both testcases in the PR have issues. The first one generates lots of errors from the C++ front end, and doesn't actually end up doing much compiling. The second one wants a non-existent expat.h file and is thus uncompilable without changes. If I delete the include of the missing expat.h file, then again I get C++ front end errors and little compilation. I tried various gcc versions, 4.0.x, mainline, 3.3.x, but I got the same result from all of them. Maybe you have a copy of the missing expat.h file? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-24 00:59 --- at -O1 on the mainline on powerpc-darwin, we now take over 800M which seems very high. I could not finish the build of this source as it was just taking too long. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-22 21:12 --- Moving to 4.0.2 pre Mark. -- What|Removed |Added Target Milestone|3.4.5 |4.0.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855
[Bug middle-end/15855] [3.4/4.0/4.1 Regression] g++ crash with -O2 and -O3 on input file
-- What|Removed |Added Target Milestone|3.4.4 |3.4.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15855