This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Compilation performance comparison of GCC 3.4.2 and GCC 4.0.0 (041024) on MICO sources


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]