This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Compilation performance comparison of GCC 3.4.2 and GCC 4.0.0 (041024) on MICO sources
- From: Steven Bosscher <stevenb at suse dot de>
- To: Karel Gardas <kgardas at objectsecurity dot com>, GCC Mailing List <gcc at gcc dot gnu dot org>
- Date: Mon, 25 Oct 2004 16:35:58 +0200
- Subject: Re: Compilation performance comparison of GCC 3.4.2 and GCC 4.0.0 (041024) on MICO sources
- Organization: SUSE Labs
- References: <Pine.LNX.4.43.0410251322000.742-100000@thinkpad.gardas.net>
On Monday 25 October 2004 14:01, Karel Gardas wrote:
> As a first possible step, I would like to propose solving ir.cc
> regressions, since if you do it, even -O1/-O2 compilation will be faster
> in comparison with 3.4.2 (ir.cc is 580kB long generated file)
With the attached patchlet to overcome the problem that we basically
assign tons of unrelated stuff to TV_EXPAND, I see this:
tree find referenced vars: 15.39 (13%) usr 0.06 ( 2%) sys 15.89 (13%) wall
That seems too expensive for what the pass does. Top of the oprofile:
902280 10.4203 21489 8.9873 cc1plus cc1plus ggc_alloc_stat
700233 8.0869 23820 9.9622 cc1plus cc1plus cgraph_reset_static_var_maps
My bet: GC allocating lots and lots of bitmaps :-/
Gr.
Steven
Index: timevar.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/timevar.def,v
retrieving revision 1.37
diff -c -3 -p -r1.37 timevar.def
*** timevar.def 23 Sep 2004 12:21:17 -0000 1.37
--- timevar.def 25 Oct 2004 14:33:32 -0000
*************** DEFTIMEVAR (TV_TREE_GIMPLIFY , "tre
*** 64,69 ****
--- 64,70 ----
DEFTIMEVAR (TV_TREE_EH , "tree eh")
DEFTIMEVAR (TV_TREE_CFG , "tree CFG construction")
DEFTIMEVAR (TV_TREE_CLEANUP_CFG , "tree CFG cleanup")
+ DEFTIMEVAR (TV_FIND_REFERENCED_VARS , "tree find referenced vars")
DEFTIMEVAR (TV_TREE_PTA , "tree PTA")
DEFTIMEVAR (TV_TREE_MAY_ALIAS , "tree alias analysis")
DEFTIMEVAR (TV_TREE_INSERT_PHI_NODES , "tree PHI insertion")
Index: tree-dfa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-dfa.c,v
retrieving revision 2.38
diff -c -3 -p -r2.38 tree-dfa.c
*** tree-dfa.c 22 Oct 2004 17:05:06 -0000 2.38
--- tree-dfa.c 25 Oct 2004 14:33:32 -0000
*************** struct tree_opt_pass pass_referenced_var
*** 132,138 ****
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
! 0, /* tv_id */
PROP_gimple_leh | PROP_cfg, /* properties_required */
PROP_referenced_vars, /* properties_provided */
0, /* properties_destroyed */
--- 132,138 ----
NULL, /* sub */
NULL, /* next */
0, /* static_pass_number */
! TV_FIND_REFERENCED_VARS, /* tv_id */
PROP_gimple_leh | PROP_cfg, /* properties_required */
PROP_referenced_vars, /* properties_provided */
0, /* properties_destroyed */