public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/2001: [3.2/3.3 regression] Inordinately long compile
@ 2003-03-12  2:46 Brad Lucier
  0 siblings, 0 replies; only message in thread
From: Brad Lucier @ 2003-03-12  2:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/2001; it has been noted by GNATS.

From: Brad Lucier <lucier@math.purdue.edu>
To: s.bosscher@student.tudelft.nl (Steven Bosscher)
Cc: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, lucier@math.purdue.edu,
   nobody@gcc.gnu.org
Subject: Re: optimization/2001: [3.2/3.3 regression] Inordinately long compile
Date: Tue, 11 Mar 2003 21:36:08 -0500 (EST)

 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=2001
 > 
 > Brad, the last time you confirmed this ugly bug is 5 months ago, do you 
 > still see this?  If so, maybe this is an Alpha-specific problem?  On my 
 > ol' slow K6-2, I get a very reasonable compile time (with -march=i586 
 > -fPIC -O2 -fno-math-errno):
 > 
 > Execution times (seconds)
 ...
 >  TOTAL                 :   9.66             0.34            11.80
 
 Perhaps you were testing 3.4, where this is fixed?  Or perhaps it requires
 a large number of registers before gcc screws up.  Here are the times I
 now get, first for the 3.3 branch, then for 3.4:
 
 popov-1734% gcc/cc1 -fPIC -fno-math-errno -O2 -mcpu=ev6 pi.i
  __copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor ___H__20_pi ___init_proc ____20_pi
 Execution times (seconds)
  cfg construction      :   0.24 ( 0%) usr   0.02 ( 3%) sys   0.50 ( 0%) wall
  cfg cleanup           :   0.94 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
  trivially dead code   :   1.23 ( 0%) usr   0.00 ( 0%) sys   2.50 ( 1%) wall
  life analysis         :  13.07 ( 4%) usr   0.00 ( 0%) sys  12.50 ( 4%) wall
  life info update      :   1.95 ( 1%) usr   0.00 ( 0%) sys   3.00 ( 1%) wall
  preprocessing         :   0.06 ( 0%) usr   0.02 ( 4%) sys   0.00 ( 0%) wall
  lexical analysis      :   0.11 ( 0%) usr   0.04 ( 5%) sys   0.00 ( 0%) wall
  parser                :   0.30 ( 0%) usr   0.03 ( 5%) sys   0.50 ( 0%) wall
  expand                :   0.08 ( 0%) usr   0.01 ( 1%) sys   0.00 ( 0%) wall
  varconst              :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  integration           :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  jump                  :   0.60 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
  CSE                   :   7.86 ( 2%) usr   0.00 ( 1%) sys   7.50 ( 2%) wall
  global CSE            :   4.63 ( 1%) usr   0.19 (29%) sys   5.00 ( 2%) wall
  loop analysis         :   0.14 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  CSE 2                 :   3.78 ( 1%) usr   0.00 ( 0%) sys   3.50 ( 1%) wall
  branch prediction     :   1.52 ( 0%) usr   0.00 ( 1%) sys   1.50 ( 0%) wall
  flow analysis         :   0.20 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  combiner              :   0.67 ( 0%) usr   0.00 ( 1%) sys   1.00 ( 0%) wall
  if-conversion         :   0.15 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  regmove               :   0.59 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
  scheduling            : 125.24 (39%) usr   0.03 ( 4%) sys 125.00 (39%) wall
  local alloc           :   1.24 ( 0%) usr   0.00 ( 0%) sys   1.50 ( 0%) wall
  global alloc          :   4.76 ( 1%) usr   0.09 (14%) sys   4.50 ( 1%) wall
  reload CSE regs       : 110.46 (34%) usr   0.11 (16%) sys 110.50 (34%) wall
  flow 2                :   0.74 ( 0%) usr   0.00 ( 0%) sys   1.00 ( 0%) wall
  if-conversion 2       :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
  peephole 2            :   0.25 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  rename registers      :   1.56 ( 0%) usr   0.00 ( 0%) sys   1.50 ( 0%) wall
  scheduling 2          :  35.85 (11%) usr   0.08 (12%) sys  35.50 (11%) wall
  reorder blocks        :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  shorten branches      :   0.39 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
  final                 :   1.37 ( 0%) usr   0.03 ( 4%) sys   1.50 ( 0%) wall
  rest of compilation   :   0.33 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
  TOTAL                 : 320.50             0.67           321.00
 
 gcc/cc1 -fPIC -fno-math-errno -O2 -mcpu=ev6 pi.i
  __copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor ___H__20_pi ___init_proc ____20_pi
 Execution times (seconds)
  cfg construction      :   0.03 ( 1%) usr   0.00 ( 1%) sys   0.03 ( 1%) wall
  cfg cleanup           :   0.10 ( 2%) usr   0.00 ( 0%) sys   0.10 ( 2%) wall
  trivially dead code   :   0.10 ( 2%) usr   0.00 ( 0%) sys   0.10 ( 2%) wall
  life analysis         :   0.19 ( 5%) usr   0.00 ( 0%) sys   0.19 ( 4%) wall
  life info update      :   0.09 ( 2%) usr   0.00 ( 0%) sys   0.09 ( 2%) wall
  alias analysis        :   0.09 ( 2%) usr   0.00 ( 1%) sys   0.09 ( 2%) wall
  register scan         :   0.04 ( 1%) usr   0.00 ( 0%) sys   0.04 ( 1%) wall
  rebuild jump labels   :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
  preprocessing         :   0.07 ( 2%) usr   0.02 (12%) sys   0.10 ( 2%) wall
  lexical analysis      :   0.08 ( 2%) usr   0.04 (24%) sys   0.12 ( 3%) wall
  parser                :   0.31 ( 7%) usr   0.03 (19%) sys   0.34 ( 8%) wall
  expand                :   0.08 ( 2%) usr   0.00 ( 3%) sys   0.08 ( 2%) wall
  varconst              :   0.02 ( 0%) usr   0.00 ( 2%) sys   0.02 ( 0%) wall
  integration           :   0.02 ( 1%) usr   0.00 ( 1%) sys   0.02 ( 1%) wall
  jump                  :   0.02 ( 1%) usr   0.00 ( 2%) sys   0.03 ( 1%) wall
  CSE                   :   0.32 ( 8%) usr   0.00 ( 0%) sys   0.32 ( 7%) wall
  global CSE            :   0.59 (14%) usr   0.01 ( 9%) sys   0.61 (14%) wall
  bypass jumps          :   0.12 ( 3%) usr   0.01 ( 4%) sys   0.13 ( 3%) wall
  CSE 2                 :   0.12 ( 3%) usr   0.00 ( 0%) sys   0.12 ( 3%) wall
  branch prediction     :   0.05 ( 1%) usr   0.00 ( 1%) sys   0.05 ( 1%) wall
  combiner              :   0.13 ( 3%) usr   0.00 ( 1%) sys   0.14 ( 3%) wall
  if-conversion         :   0.02 ( 1%) usr   0.00 ( 1%) sys   0.02 ( 1%) wall
  regmove               :   0.05 ( 1%) usr   0.00 ( 0%) sys   0.05 ( 1%) wall
  scheduling            :   0.41 (10%) usr   0.00 ( 2%) sys   0.41 ( 9%) wall
  local alloc           :   0.11 ( 3%) usr   0.00 ( 0%) sys   0.11 ( 3%) wall
  global alloc          :   0.17 ( 4%) usr   0.01 ( 7%) sys   0.18 ( 4%) wall
  reload CSE regs       :   0.21 ( 5%) usr   0.00 ( 3%) sys   0.21 ( 5%) wall
  flow 2                :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
  if-conversion 2       :   0.05 ( 1%) usr   0.00 ( 0%) sys   0.05 ( 1%) wall
  peephole 2            :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall
  rename registers      :   0.08 ( 2%) usr   0.00 ( 0%) sys   0.08 ( 2%) wall
  scheduling 2          :   0.15 ( 3%) usr   0.00 ( 1%) sys   0.15 ( 3%) wall
  reorder blocks        :   0.10 ( 2%) usr   0.01 ( 7%) sys   0.12 ( 3%) wall
  shorten branches      :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
  final                 :   0.08 ( 2%) usr   0.00 ( 1%) sys   0.08 ( 2%) wall
  rest of compilation   :   0.10 ( 2%) usr   0.00 ( 0%) sys   0.10 ( 2%) wall
  TOTAL                 :   4.20             0.17             4.37
 
 And the code generated by 3.3 is absolutely horrendous; I put the .s files at
 
 http://www.math.purdue.edu/~lucier/GNATS/GNATS-6/pi-3.3.s.gz
 
 and
 
 http://www.math.purdue.edu/~lucier/GNATS/GNATS-6/pi-3.4.s.gz
 
 The 3.4-generated code is a model of good behavior and decorum ;-).
 
 The patch that fixed this for 3.4 was
 
 http://gcc.gnu.org/ml/gcc-cvs/2003-02/msg00742.html
 
 Perhaps it's in the RedHat 3.2 branch, too.
 
 Brad


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-03-12  2:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-12  2:46 optimization/2001: [3.2/3.3 regression] Inordinately long compile Brad Lucier

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).