[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #116 from rguenth at gcc dot gnu dot org 2010-03-27 11:14 --- Given that parsing takes most of the time the compile-time indeed looks reasonable. That DF uses 20GB of ram at -O3 is still unfortunate, but the -O1 numbers look indeed good. I wonder if the parsing numbers are accurate as the initial report has like 9s parsing while the current ones are 200s. Can you explain that difference? (like, were you testing different source?) As is the testcase(s) are an interesting source of information - maybe we should gather those up on a page in the wiki just in case we end up closing this bug at some point (I suggest not to at the moment, the parsing times look odd and 20GB memory use doesn't sound reasonable). Did you ever test other compilers and see how they perform with respect to memory usage and compile time? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #117 from lucier at math dot purdue dot edu 2010-03-27 16:38 --- Subject: Re: [4.3/4.4/4.5 Regression] Inordinate compile times on large routines On Mar 27, 2010, at 7:14 AM, rguenth at gcc dot gnu dot org wrote: I wonder if the parsing numbers are accurate as the initial report has like 9s parsing while the current ones are 200s. Can you explain that difference? (like, were you testing different source?) Yes, different source (compiler.i instead of all.i), different (faster) machine. Perhaps gathering the detailed memory stats affect the parser time. Here are times for the original source file all.i using the same machine and compiler as in the immediately previous report for compiler.i: df liveinitialized regs: 45.00 ( 8%) usr 0.00 ( 0%) sys 45.04 ( 8%) wall 0 kB ( 0%) ggc parser: 19.60 ( 3%) usr 1.22 ( 7%) sys 21.25 ( 4%) wall 70217 kB ( 2%) ggc scheduling: 301.86 (52%) usr 0.00 ( 0%) sys 301.87 (51%) wall8739 kB ( 0%) ggc TOTAL : 579.8817.55 597.653393985 kB Glancing at top, the maximum reported memory usage was 13GB. I'll attach the detailed results for all.i next As is the testcase(s) are an interesting source of information - maybe we should gather those up on a page in the wiki just in case we end up closing this bug at some point (I suggest not to at the moment, the parsing times look odd and 20GB memory use doesn't sound reasonable). Did you ever test other compilers and see how they perform with respect to memory usage and compile time? No, none that were not a gcc derivative. Brad -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #118 from lucier at math dot purdue dot edu 2010-03-27 16:44 --- Created an attachment (id=20224) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20224action=view) time/memory report compiling all.i with -O3 These are the detailed time and memory statistics reported when compiling all.i with -O3 -fschedule-insns on x86-64. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #112 from howarth at nitro dot med dot uc dot edu 2010-03-26 17:44 --- What is the status of this bug? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #113 from lucier at math dot purdue dot edu 2010-03-27 04:27 --- Created an attachment (id=20220) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20220action=view) time/mem report compiling compiler.i This is the time and detailed memory report for 20100302 compiling compiler.i above with main optimization options -O1 -fschedule-insns2 (precise command line and configuration options are given at the top of the file). With these optimization levels cpu time and memory don't look too bad to me. The main routines are parser: 320.93 (59%) usr 1.40 (27%) sys 322.62 (59%) wall 103143 kB (15%) ggc tree CFG cleanup : 73.43 (14%) usr 0.01 ( 0%) sys 73.46 (13%) wall 1388 kB ( 0%) ggc Nothing else is above 3%. I'm building today's gcc on an X86-64 RHEL5 machine with more memory to test with -O3 -fschedule-insns, as this set of options now gives about 20% speedup on some of my codes of this type. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #114 from lucier at math dot purdue dot edu 2010-03-27 04:59 --- Created an attachment (id=20221) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20221action=view) time/mem report compiling compiler.i This is the time and detailed memory report for compiling compiler.i with today's gcc and optimization level -O3 -fschedule-insns. Again, the detailed configuration information and command line are contained at the beginning of the file. Except for taking 20GB of RAM, this doesn't look too bad, either. The passes taking the most time are: parser: 222.18 (21%) usr 2.95 (11%) sys 225.37 (21%) wall 103148 kB (11%) ggc tree CFG cleanup : 63.67 ( 6%) usr 0.00 ( 0%) sys 63.60 ( 6%) wall 2467 kB ( 0%) ggc scheduling: 394.04 (37%) usr 0.00 ( 0%) sys 394.04 (36%) wall 5824 kB ( 1%) ggc TOTAL :1056.6926.47 1083.41 916872 kB -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #115 from lucier at math dot purdue dot edu 2010-03-27 05:20 --- Created an attachment (id=20222) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20222action=view) time/mem report compiling compiler.i with -O1 Here is the time and memory report with -O1 -fschedule-insns2 on the same machine as the -O3 -fschedule-insns report. The biggest times are: parser: 224.89 (54%) usr 2.61 (24%) sys 226.97 (53%) wall 103148 kB (15%) ggc tree CFG cleanup : 60.61 (15%) usr 0.00 ( 0%) sys 60.58 (14%) wall 1388 kB ( 0%) ggc reload: 19.17 ( 5%) usr 0.00 ( 0%) sys 19.17 ( 5%) wall 4694 kB ( 1%) ggc TOTAL : 413.2910.95 424.28 709657 kB -- lucier at math dot purdue dot edu changed: What|Removed |Added Attachment #20220|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #111 from bergner at gcc dot gnu dot org 2009-10-03 01:39 --- Subject: Bug 26854 Author: bergner Date: Sat Oct 3 01:39:14 2009 New Revision: 152430 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152430 Log: Backport from mainline. 2009-08-30 Alan Modra amo...@bigpond.net.au PR target/41081 * fwprop.c (get_reg_use_in): Delete. (free_load_extend): New function. (forward_propagate_subreg): Use it. 2009-08-23 Alan Modra amo...@bigpond.net.au PR target/41081 * fwprop.c (try_fwprop_subst): Allow multiple sets. (get_reg_use_in): New function. (forward_propagate_subreg): Propagate through subreg of zero_extend or sign_extend. 2009-05-08 Paolo Bonzini bonz...@gnu.org PR rtl-optimization/33928 PR 26854 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween, process_uses, build_single_def_use_links): New. (update_df): Update use_def_ref. (forward_propagate_into): Use get_def_for_use instead of use-def chains. (fwprop_init): Call build_single_def_use_links and let it initialize dataflow. (fwprop_done): Free use_def_ref. (fwprop_addr): Eliminate duplicate call to df_set_flags. * df-problems.c (df_rd_simulate_artificial_defs_at_top, df_rd_simulate_one_insn): New. (df_rd_bb_local_compute_process_def): Update head comment. (df_chain_create_bb): Use the new RD simulation functions. * df.h (df_rd_simulate_artificial_defs_at_top, df_rd_simulate_one_insn): New. * opts.c (decode_options): Enable fwprop at -O1. * doc/invoke.texi (-fforward-propagate): Document this. Modified: branches/ibm/gcc-4_3-branch/gcc/ChangeLog.ibm branches/ibm/gcc-4_3-branch/gcc/REVISION branches/ibm/gcc-4_3-branch/gcc/df-problems.c branches/ibm/gcc-4_3-branch/gcc/df.h branches/ibm/gcc-4_3-branch/gcc/doc/invoke.texi branches/ibm/gcc-4_3-branch/gcc/fwprop.c branches/ibm/gcc-4_3-branch/gcc/opts.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #110 from rguenth at gcc dot gnu dot org 2009-08-04 12:27 --- GCC 4.3.4 is being released, adjusting target milestone. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|4.3.4 |4.3.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #109 from bonzini at gnu dot org 2009-06-27 14:48 --- Subject: Bug 26854 Author: bonzini Date: Sat Jun 27 14:48:34 2009 New Revision: 149010 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=149010 Log: 2009-06-07 Paolo Bonzini bonz...@gnu.org PR rtl-optimization/26854 * timevar.def: Remove TV_DF_RU, add TV_DF_MD. * df-problems.c (df_rd_add_problem): Fix comment. (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc, df_md_simulate_artificial_defs_at_top, df_md_simulate_one_insn, df_md_bb_local_compute_process_def, df_md_bb_local_compute, df_md_local_compute, df_md_reset, df_md_transfer_function, df_md_init, df_md_confluence_0, df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump, problem_MD, df_md_add_problem): New. * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md, df_md_get_bb_info): New. DF_LAST_PROBLEM_PLUS1): Adjust. * Makefile.in (fwprop.o): Include domwalk.h. * fwprop.c: Include domwalk.h. (reg_defs, reg_defs_stack): New. (bitmap_only_bit_between): Remove. (process_defs): New. (process_uses): Use reg_defs and local_md instead of bitmap_only_bit_between and local_rd. (single_def_use_enter_block): New, from build_single_def_use_links. (single_def_use_leave_block): New. (build_single_def_use_links): Remove code moved to single_def_use_enter_block, invoke domwalk. (use_killed_between): Adjust comment. Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/df-problems.c trunk/gcc/df.h trunk/gcc/fwprop.c trunk/gcc/timevar.def -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
[Bug tree-optimization/26854] [4.3/4.4/4.5 Regression] Inordinate compile times on large routines
--- Comment #107 from bonzini at gnu dot org 2009-05-08 12:22 --- Subject: Bug 26854 Author: bonzini Date: Fri May 8 12:22:30 2009 New Revision: 147282 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=147282 Log: 2009-05-08 Paolo Bonzini bonz...@gnu.org PR rtl-optimization/33928 PR 26854 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween, process_uses, build_single_def_use_links): New. (update_df): Update use_def_ref. (forward_propagate_into): Use get_def_for_use instead of use-def chains. (fwprop_init): Call build_single_def_use_links and let it initialize dataflow. (fwprop_done): Free use_def_ref. (fwprop_addr): Eliminate duplicate call to df_set_flags. * df-problems.c (df_rd_simulate_artificial_defs_at_top, df_rd_simulate_one_insn): New. (df_rd_bb_local_compute_process_def): Update head comment. (df_chain_create_bb): Use the new RD simulation functions. * df.h (df_rd_simulate_artificial_defs_at_top, df_rd_simulate_one_insn): New. * opts.c (decode_options): Enable fwprop at -O1. * doc/invoke.texi (-fforward-propagate): Document this. Modified: trunk/gcc/ChangeLog trunk/gcc/df-problems.c trunk/gcc/df.h trunk/gcc/doc/invoke.texi trunk/gcc/fwprop.c trunk/gcc/opts.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854