optimization/3987: propagate_freq enormous performance hit in 3.1
Brad Lucier
lucier@math.purdue.edu
Sat Mar 15 14:52:00 GMT 2003
> Brad, is this report still imminent? If so, then it would
> classify as a regression, and we should mark it as that.
> Unfortunately, I don't have access to such a machine...
I don't have 3.3 built for a sparc, but I tried to compile the file
overnight on my alpha with 3.3 and failed because I had only 2 GB
of RAM and things seized up pretty hard when it hit the disk-based
virtual memory.
So yes, it's still broken for 3.3. Here are the times for 3.4:
popov-110% /usr/local/gcc-3.4/lib/gcc-lib/alphaev6-unknown-linux-gnu/3.4/cc1 -fPIC -O1 -fschedule-insns2 -fno-math-errno -fno-strict-aliasing -mcpu=21264 -mieee all.i
__copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor ___H__20_all ___init_proc ____20_all
Execution times (seconds)
cfg construction : 1.27 ( 1%) usr 0.44 (13%) sys 4.55 ( 1%) wall
cfg cleanup : 4.96 ( 3%) usr 0.01 ( 0%) sys 12.82 ( 3%) wall
trivially dead code : 1.80 ( 1%) usr 0.00 ( 0%) sys 4.64 ( 1%) wall
life analysis : 15.74 (10%) usr 0.02 ( 1%) sys 41.93 (10%) wall
life info update : 6.48 ( 4%) usr 0.01 ( 0%) sys 18.42 ( 4%) wall
alias analysis : 1.35 ( 1%) usr 0.02 ( 0%) sys 3.28 ( 1%) wall
register scan : 0.78 ( 1%) usr 0.01 ( 0%) sys 1.49 ( 0%) wall
rebuild jump labels : 0.42 ( 0%) usr 0.00 ( 0%) sys 1.20 ( 0%) wall
preprocessing : 1.23 ( 1%) usr 0.36 (10%) sys 5.13 ( 1%) wall
lexical analysis : 1.63 ( 1%) usr 0.76 (22%) sys 6.03 ( 1%) wall
parser : 5.42 ( 4%) usr 0.60 (17%) sys 13.79 ( 3%) wall
expand : 1.81 ( 1%) usr 0.09 ( 3%) sys 4.86 ( 1%) wall
varconst : 0.28 ( 0%) usr 0.01 ( 0%) sys 0.76 ( 0%) wall
integration : 0.53 ( 0%) usr 0.02 ( 1%) sys 1.65 ( 0%) wall
jump : 0.24 ( 0%) usr 0.00 ( 0%) sys 0.49 ( 0%) wall
CSE : 2.80 ( 2%) usr 0.00 ( 0%) sys 7.16 ( 2%) wall
loop analysis : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.40 ( 0%) wall
branch prediction : 10.49 ( 7%) usr 0.03 ( 1%) sys 27.14 ( 7%) wall
flow analysis : 0.25 ( 0%) usr 0.00 ( 0%) sys 0.72 ( 0%) wall
combiner : 5.55 ( 4%) usr 0.06 ( 2%) sys 14.02 ( 3%) wall
if-conversion : 6.69 ( 4%) usr 0.01 ( 0%) sys 16.89 ( 4%) wall
local alloc : 1.99 ( 1%) usr 0.02 ( 0%) sys 4.69 ( 1%) wall
global alloc : 6.95 ( 4%) usr 0.59 (17%) sys 19.71 ( 5%) wall
reload CSE regs : 61.96 (40%) usr 0.10 ( 3%) sys 161.93 (39%) wall
flow 2 : 0.47 ( 0%) usr 0.07 ( 2%) sys 1.30 ( 0%) wall
if-conversion 2 : 0.89 ( 1%) usr 0.00 ( 0%) sys 2.33 ( 1%) wall
rename registers : 4.66 ( 3%) usr 0.05 ( 1%) sys 13.61 ( 3%) wall
scheduling 2 : 3.73 ( 2%) usr 0.06 ( 2%) sys 9.68 ( 2%) wall
shorten branches : 0.45 ( 0%) usr 0.01 ( 0%) sys 0.87 ( 0%) wall
final : 1.57 ( 1%) usr 0.03 ( 1%) sys 4.28 ( 1%) wall
rest of compilation : 2.26 ( 1%) usr 0.10 ( 3%) sys 5.77 ( 1%) wall
TOTAL : 154.80 3.48 411.93
I believe optimization/2001 has similar causes that are fixed by this patch
http://gcc.gnu.org/ml/gcc-cvs/2003-02/msg00742.html
Brad
More information about the Gcc-bugs
mailing list