This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: if-conversion a performance bottleneck


> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]