public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: Brad Lucier <lucier@math.purdue.edu> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: optimization/2001: [3.2/3.3 regression] Inordinately long compile Date: Wed, 12 Mar 2003 02:46:00 -0000 [thread overview] Message-ID: <20030312024600.32689.qmail@sources.redhat.com> (raw) 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
reply other threads:[~2003-03-12 2:46 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20030312024600.32689.qmail@sources.redhat.com \ --to=lucier@math.purdue.edu \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@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: linkBe 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).