This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Tremendous increase in compile times for 3.4.1 with -mcpu=G5
- From: Bradley Lucier <lucier at math dot purdue dot edu>
- To: gcc at gcc dot gnu dot org
- Cc: Bradley Lucier <lucier at math dot purdue dot edu>
- Date: Tue, 10 Aug 2004 17:47:33 -0500
- Subject: Re: Tremendous increase in compile times for 3.4.1 with -mcpu=G5
- References: <E6A45290-EB1B-11D8-8435-000A958F150A@math.purdue.edu>
On Aug 10, 2004, at 5:23 PM, Bradley Lucier wrote:
It seems that specifying -mcpu=G5 instead of -mcpu=G4 leads to a
tremendous increase in compile time for 3.4.1.
A typicial bad file can be found at
http://www.math.purdue.edu/~lucier/GNATS/GNATS-12/_num.i.gz
I filed a PR: 16975.
Sorry, it's been a long day, I forgot to give any timing information;
the problem seems to appear in local alloc:
[descartes:~] lucier%
/pkgs/gcc-3.4.1/libexec/gcc/powerpc-apple-darwin7.5.0/3.4.1/cc1
-mcpu=G4 -I../include -Wall -W -Wno-unused -O1 -fno-math-errno
-fschedule-insns2 -fno-trapping-math -fno-strict-aliasing
-fomit-frame-pointer -fPIC -fno-common -DHAVE_CONFIG_H _num.i
___H__20___num
{GC 33074k -> 16368k} {GC 24361k -> 16711k} {GC 24130k -> 17077k} {GC
27863k -> 4402k} ___init_proc
{GC 5843k -> 4642k} ____20___num
Execution times (seconds)
garbage collection : 0.44 ( 2%) usr 0.05 ( 0%) sys 0.88 ( 2%)
wall
cfg construction : 0.26 ( 1%) usr 0.34 ( 3%) sys 1.14 ( 2%)
wall
cfg cleanup : 0.85 ( 4%) usr 0.01 ( 0%) sys 1.66 ( 3%)
wall
trivially dead code : 0.36 ( 2%) usr 0.02 ( 0%) sys 0.78 ( 1%)
wall
life analysis : 1.15 ( 6%) usr 0.32 ( 3%) sys 2.63 ( 5%)
wall
life info update : 0.38 ( 2%) usr 0.00 ( 0%) sys 0.71 ( 1%)
wall
alias analysis : 0.24 ( 1%) usr 0.02 ( 0%) sys 0.43 ( 1%)
wall
register scan : 0.16 ( 1%) usr 0.00 ( 0%) sys 0.38 ( 1%)
wall
rebuild jump labels : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%)
wall
preprocessing : 1.57 ( 8%) usr 2.64 (21%) sys 7.90 (14%)
wall
lexical analysis : 2.68 (14%) usr 5.26 (42%) sys 14.38 (25%)
wall
parser : 2.37 (13%) usr 2.85 (23%) sys 10.39 (18%)
wall
expand : 0.41 ( 2%) usr 0.05 ( 0%) sys 0.87 ( 1%)
wall
varconst : 0.07 ( 0%) usr 0.04 ( 0%) sys 0.22 ( 0%)
wall
jump : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%)
wall
CSE : 0.39 ( 2%) usr 0.00 ( 0%) sys 0.76 ( 1%)
wall
loop analysis : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%)
wall
branch prediction : 0.76 ( 4%) usr 0.06 ( 0%) sys 1.47 ( 3%)
wall
flow analysis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%)
wall
combiner : 0.63 ( 3%) usr 0.05 ( 0%) sys 1.26 ( 2%)
wall
if-conversion : 0.20 ( 1%) usr 0.03 ( 0%) sys 0.42 ( 1%)
wall
local alloc : 0.51 ( 3%) usr 0.03 ( 0%) sys 1.01 ( 2%)
wall
global alloc : 1.34 ( 7%) usr 0.28 ( 2%) sys 2.92 ( 5%)
wall
reload CSE regs : 0.64 ( 3%) usr 0.01 ( 0%) sys 1.23 ( 2%)
wall
flow 2 : 0.13 ( 1%) usr 0.11 ( 1%) sys 0.41 ( 1%)
wall
if-conversion 2 : 0.12 ( 1%) usr 0.02 ( 0%) sys 0.26 ( 0%)
wall
rename registers : 1.73 ( 9%) usr 0.05 ( 0%) sys 3.32 ( 6%)
wall
scheduling 2 : 0.64 ( 3%) usr 0.04 ( 0%) sys 1.19 ( 2%)
wall
shorten branches : 0.10 ( 1%) usr 0.00 ( 0%) sys 0.22 ( 0%)
wall
final : 0.26 ( 1%) usr 0.01 ( 0%) sys 0.50 ( 1%)
wall
symout : 0.00 ( 0%) usr 0.01 ( 0%) sys 0.01 ( 0%)
wall
rest of compilation : 0.37 ( 2%) usr 0.07 ( 1%) sys 0.71 ( 1%)
wall
TOTAL : 18.95 12.40 58.44
[descartes:~] lucier%
/pkgs/gcc-3.4.1/libexec/gcc/powerpc-apple-darwin7.5.0/3.4.1/cc1
-mcpu=G5 -I../include -Wall -W -Wno-unused -O1 -fno-math-errno
-fschedule-insns2 -fno-trapping-math -fno-strict-aliasing
-fomit-frame-pointer -fPIC -fno-common -DHAVE_CONFIG_H _num.i
___H__20___num
{GC 34619k -> 17755k} {GC 24607k -> 18680k} {GC 24303k -> 18051k} {GC
25937k -> 18621k} {GC 29738k -> 4562k} ___init_proc
{GC 5960k -> 4703k} ____20___num
Execution times (seconds)
garbage collection : 0.55 ( 0%) usr 0.03 ( 0%) sys 1.14 ( 0%)
wall
cfg construction : 0.27 ( 0%) usr 0.34 ( 2%) sys 1.12 ( 0%)
wall
cfg cleanup : 0.92 ( 1%) usr 0.01 ( 0%) sys 1.68 ( 1%)
wall
trivially dead code : 0.41 ( 0%) usr 0.03 ( 0%) sys 0.93 ( 0%)
wall
life analysis : 1.08 ( 1%) usr 0.34 ( 2%) sys 2.76 ( 1%)
wall
life info update : 0.41 ( 0%) usr 0.00 ( 0%) sys 0.86 ( 0%)
wall
alias analysis : 0.25 ( 0%) usr 0.02 ( 0%) sys 0.50 ( 0%)
wall
register scan : 0.21 ( 0%) usr 0.00 ( 0%) sys 0.38 ( 0%)
wall
rebuild jump labels : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 0%)
wall
preprocessing : 1.56 ( 1%) usr 2.87 (21%) sys 7.77 ( 3%)
wall
lexical analysis : 2.74 ( 2%) usr 5.23 (38%) sys 15.70 ( 6%)
wall
parser : 2.29 ( 2%) usr 2.97 (21%) sys 10.23 ( 4%)
wall
expand : 0.41 ( 0%) usr 0.04 ( 0%) sys 0.84 ( 0%)
wall
varconst : 0.09 ( 0%) usr 0.03 ( 0%) sys 0.10 ( 0%)
wall
jump : 0.01 ( 0%) usr 0.01 ( 0%) sys 0.09 ( 0%)
wall
CSE : 0.48 ( 0%) usr 0.01 ( 0%) sys 0.89 ( 0%)
wall
loop analysis : 0.02 ( 0%) usr 0.02 ( 0%) sys 0.10 ( 0%)
wall
branch prediction : 0.81 ( 1%) usr 0.07 ( 1%) sys 1.75 ( 1%)
wall
flow analysis : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%)
wall
combiner : 0.96 ( 1%) usr 0.03 ( 0%) sys 2.09 ( 1%)
wall
if-conversion : 0.21 ( 0%) usr 0.01 ( 0%) sys 0.49 ( 0%)
wall
local alloc : 117.49 (86%) usr 1.09 ( 8%) sys 221.13 (78%)
wall
global alloc : 1.99 ( 1%) usr 0.35 ( 3%) sys 4.43 ( 2%)
wall
reload CSE regs : 0.92 ( 1%) usr 0.04 ( 0%) sys 1.85 ( 1%)
wall
flow 2 : 0.11 ( 0%) usr 0.08 ( 1%) sys 0.39 ( 0%)
wall
if-conversion 2 : 0.13 ( 0%) usr 0.02 ( 0%) sys 0.26 ( 0%)
wall
rename registers : 1.58 ( 1%) usr 0.11 ( 1%) sys 3.15 ( 1%)
wall
scheduling 2 : 0.66 ( 0%) usr 0.01 ( 0%) sys 1.33 ( 0%)
wall
shorten branches : 0.12 ( 0%) usr 0.01 ( 0%) sys 0.20 ( 0%)
wall
final : 0.23 ( 0%) usr 0.05 ( 0%) sys 0.51 ( 0%)
wall
symout : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%)
wall
rest of compilation : 0.36 ( 0%) usr 0.05 ( 0%) sys 0.79 ( 0%)
wall
TOTAL : 137.39 13.90 283.76