public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
To: Matt Austern <austern@apple.com>
Cc: gcc@gcc.gnu.org
Subject: Re: Huge compile time & run time performance regression 3.3 -> HEAD
Date: Mon, 19 May 2003 19:01:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.44.0305192043000.464-100000@goofy> (raw)
In-Reply-To: <110B848B-8A12-11D7-B0E8-000393B2ABA2@apple.com>

On Mon, 19 May 2003, Matt Austern wrote:

> On Sunday, May 18, 2003, at 08:45  AM, Richard Guenther wrote:
>
> > Hi!
> >
> > As 3.3 is now out, I start comparing 3.3 to HEAD wrt compile time
> > performance and performance of the resulting code. As always these
> > comparisons are for a POOMA based scientific application.
> >
> > I experience a 100% compile time regression (673.50s -> 1284.48s) and
> > a 12% runtime performance regression (150s -> 171s) when comparing
> > gcc3.3 to HEAD.
> >
> > Time reports follow, the most prominent regressions are expand, global
> > CSE
> > (>300%!), loop analysis and branch prediction.
> >
> > Compile options are -ftemplate-depth-80 -fno-exceptions -O2
> > -march=athlon
> > -funroll-loops -fomit-frame-pointer
>
> Do you see any compile time regressions at -O0?
>
> (I'm asking for the obvious reason: trying to find out how much work we
> need to do in the front end as opposed to the back end.)

For 3.3 with -O0 I get:

Execution times (seconds)
 garbage collection    :  13.19 ( 2%) usr   0.00 ( 0%) sys  12.50 ( 2%)
wall
 cfg construction      :   2.11 ( 0%) usr   0.02 ( 1%) sys   2.50 ( 0%)
wall
 cfg cleanup           :   0.83 ( 0%) usr   0.00 ( 0%) sys   1.00 ( 0%)
wall
 trivially dead code   :   1.68 ( 0%) usr   0.00 ( 0%) sys   2.00 ( 0%)
wall
 life analysis         :   5.30 ( 1%) usr   0.01 ( 0%) sys   7.00 ( 1%)
wall
 life info update      :   1.46 ( 0%) usr   0.00 ( 0%) sys   1.00 ( 0%)
wall
 preprocessing         :   0.57 ( 0%) usr   0.24 ( 8%) sys   0.50 ( 0%)
wall
 lexical analysis      :   0.44 ( 0%) usr   0.18 ( 6%) sys   0.50 ( 0%)
wall
 parser                :  14.73 ( 2%) usr   0.54 (17%) sys  14.50 ( 2%)
wall
 name lookup           :   7.38 ( 1%) usr   0.95 (30%) sys   7.50 ( 1%)
wall
 expand                : 539.94 (81%) usr   0.54 (17%) sys 540.00 (81%)
wall
 varconst              :   0.72 ( 0%) usr   0.01 ( 0%) sys   1.00 ( 0%)
wall
 integration           :  19.82 ( 3%) usr   0.19 ( 6%) sys  19.50 ( 3%)
wall
 jump                  :   2.51 ( 0%) usr   0.00 ( 0%) sys   3.50 ( 1%)
wall
 flow analysis         :   0.89 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%)
wall
 mode switching        :   2.33 ( 0%) usr   0.01 ( 0%) sys   3.00 ( 0%)
wall
 scheduling            :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%)
wall
 local alloc           :   9.75 ( 1%) usr   0.01 ( 0%) sys  11.00 ( 2%)
wall
 global alloc          :  23.63 ( 4%) usr   0.15 ( 5%) sys  22.50 ( 3%)
wall
 flow 2                :   1.59 ( 0%) usr   0.01 ( 0%) sys   0.00 ( 0%)
wall
 shorten branches      :   2.15 ( 0%) usr   0.00 ( 0%) sys   1.50 ( 0%)
wall
 reg stack             :   1.48 ( 0%) usr   0.00 ( 0%) sys   3.00 ( 0%)
wall
 final                 :   3.79 ( 1%) usr   0.31 (10%) sys   6.50 ( 1%)
wall
 rest of compilation   :  10.17 ( 2%) usr   0.02 ( 1%) sys  10.00 ( 1%)
wall
 TOTAL                 : 666.48             3.19           670.50

For 3.4:

Execution times (seconds)
 garbage collection    :  12.27 ( 2%) usr   0.10 ( 0%) sys  12.38 ( 2%)
wall
 cfg construction      :   2.25 ( 0%) usr   0.10 ( 0%) sys   2.30 ( 0%)
wall
 cfg cleanup           :   0.99 ( 0%) usr   0.01 ( 0%) sys   0.89 ( 0%)
wall
 trivially dead code   :   1.31 ( 0%) usr   0.00 ( 0%) sys   1.39 ( 0%)
wall
 life analysis         :   5.39 ( 1%) usr   0.12 ( 1%) sys   5.65 ( 1%)
wall
 life info update      :   1.42 ( 0%) usr   0.00 ( 0%) sys   1.49 ( 0%)
wall
 register scan         :   1.34 ( 0%) usr   0.02 ( 0%) sys   1.33 ( 0%)
wall
 rebuild jump labels   :   1.22 ( 0%) usr   0.00 ( 0%) sys   1.23 ( 0%)
wall
 preprocessing         :   0.44 ( 0%) usr   0.17 ( 1%) sys   0.91 ( 0%)
wall
 parser                :  14.65 ( 2%) usr   0.65 ( 3%) sys  14.82 ( 2%)
wall
 name lookup           :   9.66 ( 1%) usr   0.77 ( 4%) sys  10.66 ( 1%)
wall
 expand                : 555.99 (78%) usr  11.15 (54%) sys 567.86 (78%)
wall
 varconst              :   0.73 ( 0%) usr   0.01 ( 0%) sys   0.71 ( 0%)
wall
 integration           :  17.85 ( 3%) usr   6.29 (30%) sys  24.09 ( 3%)
wall
 jump                  :   0.79 ( 0%) usr   0.04 ( 0%) sys   0.86 ( 0%)
wall
 flow analysis         :   0.66 ( 0%) usr   0.00 ( 0%) sys   0.85 ( 0%)
wall
 mode switching        :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%)
wall
 scheduling            :   0.01 ( 0%) usr   0.01 ( 0%) sys   0.00 ( 0%)
wall
 local alloc           :  37.47 ( 5%) usr   0.03 ( 0%) sys  37.60 ( 5%)
wall
 global alloc          :  24.17 ( 3%) usr   0.80 ( 4%) sys  24.83 ( 3%)
wall
 flow 2                :   1.53 ( 0%) usr   0.07 ( 0%) sys   1.56 ( 0%)
wall
 machine dep reorg     :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%)
wall
 shorten branches      :   2.60 ( 0%) usr   0.04 ( 0%) sys   2.79 ( 0%)
wall
 reg stack             :   1.31 ( 0%) usr   0.00 ( 0%) sys   1.35 ( 0%)
wall
 final                 :   4.38 ( 1%) usr   0.22 ( 1%) sys   4.62 ( 1%)
wall
 symout                :   0.00 ( 0%) usr   0.01 ( 0%) sys   0.00 ( 0%)
wall
 rest of compilation   :  10.13 ( 1%) usr   0.22 ( 1%) sys   9.96 ( 1%)
wall
 TOTAL                 : 708.60            20.83           730.22

Thats about 60s difference in wall clock time. Is it true, that even at
-O0 -finline is set?

Richard.

  reply	other threads:[~2003-05-19 18:49 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-18 16:10 Richard Guenther
2003-05-18 19:22 ` Richard Guenther
2003-05-18 19:31   ` Richard Guenther
2003-05-18 19:35     ` Richard Guenther
2003-05-19 16:18 ` Matt Austern
2003-05-19 19:01   ` Richard Guenther [this message]
2003-05-19 20:51   ` Richard Guenther
2003-05-19 21:04     ` Gabriel Dos Reis
2003-05-19 21:10       ` Richard Guenther
2003-05-19 21:14         ` Gabriel Dos Reis
2003-05-19 21:24       ` Richard Guenther

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44.0305192043000.464-100000@goofy \
    --to=rguenth@tat.physik.uni-tuebingen.de \
    --cc=austern@apple.com \
    --cc=gcc@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).