This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: if-conversion a performance bottleneck
- To: matzmich at cs dot tu-berlin dot de (Michael Matz)
- Subject: Re: if-conversion a performance bottleneck
- From: Brad Lucier <lucier at math dot purdue dot edu>
- Date: Wed, 3 May 2000 07:50:22 -0500 (EST)
- Cc: lucier at math dot purdue dot edu (Brad Lucier), rth at cygnus dot com (Richard Henderson), gcc at gcc dot gnu dot org
> Please try the attached diff (against actual CVS) if they make also a
> difference for you ;)
The diff didn't apply cleanly, I don't know why, so I applied it by hand.
I didn't have time this morning to install a new profiled version, so
I ran make bootstrap with the usual BOOT_CFLAGS.
Your patch did help. Here is a comparison between the a profiled version
without your patch and an unprofiled version with your patch:
popov-726% /export/u10/egcs-profile/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.96/cc1 -O1 -mcpu=ev6 -fno-math-errno -mieee _t-c-2.i
__copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor __fdimf fdimf __fdim fdim ___H__20___t_2d_c_2d_2 {GC 46791k -> 9596k} {GC 14695k -> 10090k} {GC 14135k -> 10558k} ___init_proc {GC 23543k -> 2096k} ____20___t_2d_c_2d_2
Execution times (seconds)
garbage collection : 0.71 ( 0%) usr 0.00 ( 1%) sys 0.71 ( 0%) wall
parser : 6.13 ( 3%) usr 0.19 (25%) sys 6.32 ( 3%) wall
varconst : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
integration : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
jump : 6.45 ( 3%) usr 0.39 (51%) sys 6.84 ( 3%) wall
CSE : 2.20 ( 1%) usr 0.00 ( 1%) sys 2.20 ( 1%) wall
global CSE : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
loop analysis : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
CSE 2 : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
flow analysis : 63.17 (27%) usr 0.06 ( 8%) sys 63.21 (27%) wall
combiner : 2.81 ( 1%) usr 0.00 ( 0%) sys 2.81 ( 1%) wall
if-conversion : 56.39 (24%) usr 0.01 ( 2%) sys 56.39 (24%) wall
local alloc : 1.24 ( 1%) usr 0.00 ( 0%) sys 1.24 ( 1%) wall
global alloc : 2.35 ( 1%) usr 0.05 ( 8%) sys 2.41 ( 1%) wall
reload CSE regs : 3.68 ( 2%) usr 0.00 ( 0%) sys 3.68 ( 2%) wall
flow 2 : 29.86 (13%) usr 0.00 ( 1%) sys 29.86 (13%) wall
if-conversion 2 : 58.60 (25%) usr 0.01 ( 2%) sys 58.60 (25%) wall
shorten branches : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 0%) wall
final : 2.68 ( 1%) usr 0.00 ( 1%) sys 2.70 ( 1%) wall
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
rest of compilation : 1.02 ( 0%) usr 0.00 ( 0%) sys 1.02 ( 0%) wall
TOTAL : 237.52 0.77 238.47
popov-727% gcc -v
Reading specs from /export/u10/gcc-2.95.1/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.95.1/specs
gcc version 2.95.1 19990816 (release)
popov-728% /export/u10/egcs-test/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.96/cc1 -O1 -mcpu=ev6 -fno-math-errno -mieee _t-c-2.i
__copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor __fdimf fdimf __fdim fdim ___H__20___t_2d_c_2d_2 {GC 46791k -> 9596k} {GC 14695k -> 10090k} {GC 14135k -> 10558k} ___init_proc {GC 23543k -> 2096k} ____20___t_2d_c_2d_2
Execution times (seconds)
garbage collection : 0.32 ( 0%) usr 0.00 ( 1%) sys 0.32 ( 0%) wall
parser : 2.92 ( 2%) usr 0.18 (25%) sys 3.10 ( 2%) wall
varconst : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
integration : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
jump : 4.56 ( 3%) usr 0.38 (52%) sys 4.94 ( 3%) wall
CSE : 0.81 ( 1%) usr 0.00 ( 0%) sys 0.81 ( 1%) wall
global CSE : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
loop analysis : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
CSE 2 : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
flow analysis : 51.69 (32%) usr 0.06 ( 8%) sys 51.74 (32%) wall
combiner : 0.99 ( 1%) usr 0.00 ( 0%) sys 0.99 ( 1%) wall
if-conversion : 33.69 (21%) usr 0.01 ( 2%) sys 33.70 (21%) wall
local alloc : 0.54 ( 0%) usr 0.00 ( 0%) sys 0.54 ( 0%) wall
global alloc : 1.11 ( 1%) usr 0.05 ( 7%) sys 1.16 ( 1%) wall
reload CSE regs : 3.15 ( 2%) usr 0.00 ( 1%) sys 3.15 ( 2%) wall
flow 2 : 23.85 (15%) usr 0.00 ( 0%) sys 23.84 (15%) wall
if-conversion 2 : 33.45 (21%) usr 0.01 ( 2%) sys 33.45 (21%) wall
shorten branches : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
final : 2.46 ( 2%) usr 0.00 ( 0%) sys 2.46 ( 2%) wall
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
rest of compilation : 0.43 ( 0%) usr 0.00 ( 0%) sys 0.43 ( 0%) wall
TOTAL : 160.09 0.73 160.78
I can get more information this afternoon (this evening in Germany :-).
Brad