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]

Re: Kudos to the gcc developers


On Thu, Nov 30, 2000 at 06:40:16PM -0500, Brad Lucier wrote:
> > On Thu, Nov 30, 2000 at 11:45:25AM -0500, Brad Lucier wrote:
> > > 
> > > 1.  After Michael Matz's dominators calculation was integrated into
> > > gcc, I ran a profiled version to see what the next significant "hot
> > > spot" was in the compiler.  I couldn't find one.
> > 
> > Hm, this surprises me.  The profiles I do show significant time
> > (i.e. >5%) in the garbage collector and sometimes in CSE (not GCSE).
> 
> I didn't say there weren't any, just that I couldn't find one.
> 
> I no longer have a profiled cc1 around, but here are some typical statistics:

I see now... your test cases have just a few huge functions in each
file.  Mine have many tiny functions.  Naturally the bottlenecks will
be different.

> Execution times (seconds)
>  garbage collection    :   1.03 ( 1%) usr   0.01 ( 0%) sys   1.04 ( 1%) wall
>  preprocessing         :   0.49 ( 1%) usr   0.16 ( 4%) sys   0.66 ( 1%) wall
>  lexical analysis      :   0.66 ( 1%) usr   0.31 ( 8%) sys   0.96 ( 1%) wall
>  parser                :   2.17 ( 3%) usr   0.26 ( 7%) sys   2.45 ( 3%) wall
>  varconst              :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall
>  integration           :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
>  jump                  :   6.20 ( 9%) usr   0.11 ( 3%) sys   6.32 ( 8%) wall
>  CSE                   :   1.67 ( 2%) usr   0.00 ( 0%) sys   1.67 ( 2%) wall
>  global CSE            :  16.22 (23%) usr   0.43 (11%) sys  16.65 (22%) wall
>  loop analysis         :   0.15 ( 0%) usr   0.00 ( 0%) sys   0.15 ( 0%) wall
>  CSE 2                 :   1.50 ( 2%) usr   0.00 ( 0%) sys   1.50 ( 2%) wall
>  flow analysis         :   0.95 ( 1%) usr   0.24 ( 6%) sys   1.19 ( 2%) wall
>  combiner              :   1.02 ( 1%) usr   0.00 ( 0%) sys   1.03 ( 1%) wall
>  if-conversion         :   0.23 ( 0%) usr   0.02 ( 1%) sys   0.26 ( 0%) wall
>  regmove               :   0.40 ( 1%) usr   0.00 ( 0%) sys   0.40 ( 1%) wall
>  scheduling            :   6.01 ( 8%) usr   0.97 (26%) sys   6.98 ( 9%) wall
>  local alloc           :   8.76 (12%) usr   0.01 ( 0%) sys   8.77 (12%) wall
>  global alloc          :   2.18 ( 3%) usr   0.07 ( 2%) sys   2.25 ( 3%) wall
>  reload CSE regs       :  12.87 (18%) usr   0.02 ( 1%) sys  12.89 (17%) wall
>  flow 2                :   1.54 ( 2%) usr   0.19 ( 5%) sys   1.73 ( 2%) wall
>  if-conversion 2       :   0.05 ( 0%) usr   0.01 ( 0%) sys   0.06 ( 0%) wall
>  peephole 2            :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall
>  scheduling 2          :   5.35 ( 8%) usr   0.86 (23%) sys   6.22 ( 8%) wall
>  reorder blocks        :   0.12 ( 0%) usr   0.00 ( 0%) sys   0.12 ( 0%) wall
>  shorten branches      :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.10 ( 0%) wall
>  final                 :   0.55 ( 1%) usr   0.01 ( 0%) sys   0.56 ( 1%) wall
>  symout                :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall
>  rest of compilation   :   0.60 ( 1%) usr   0.00 ( 0%) sys   0.60 ( 1%) wall
>  TOTAL                 :  71.16             3.77            74.91

But it looks to me like GCSE and reload-CSE are the places to speed
up.  Of course I know nothing about what's going on in there, maybe
they're already as fast as they can get.

zw

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