This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[Bug optimization/12322] [3.4 Regression] Significant slowdown when compiling computed-goto code in Parrot, GCSE is slower


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12322


pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
          Component|c                           |optimization
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2003-09-22 08:40:26
               date|                            |
            Summary|[3.4 Regression] Significant|[3.4 Regression] Significant
                   |slowdown when compiling     |slowdown when compiling
                   |computed-goto code in Parrot|computed-goto code in
                   |                            |Parrot,  GCSE is slower


------- Additional Comments From pinskia at gcc dot gnu dot org  2003-09-22 08:40 -------
on powerpc-apple-darwin (after deleting the stuff included in math-inline.h and changing 
the register esi) the 3.4 is only slightly slower on my TI 800MHz powerBook:
[zhivago2:~/src/gccPRs] apinski% time ~/fsf-clean-nocheck/bin/gcc pr12322.i -S
5.610u 0.390s 0:08.90 67.4%     0+0k 0+1io 0pf+0w
[zhivago2:~/src/gccPRs] apinski% time /Volumes/UFS_Partition/pinskia/gcc-3.3/bin/gcc 
pr12322.i -S
5.410u 0.250s 0:05.98 94.6%     0+0k 0+2io 0pf+0w

As you can see it is only .2 user seconds.

GNU C version 3.4 20030919 (experimental) (powerpc-apple-darwin7.0.0)
        compiled by GNU C version 3.4 20030919 (experimental).


But on the other hand optimizing is a different story:
[zhivago2:~/src/gccPRs] apinski% time /Volumes/UFS_Partition/pinskia/gcc-3.3/bin/gcc 
pr12322.i -O2 -S
60.510u 8.510s 1:40.97 68.3%    0+0k 0+3io 0pf+0w
[zhivago2:~/src/gccPRs] apinski% time ~/fsf-clean-nocheck/bin/gcc pr12322.i -S -O2
117.000u 10.180s 4:49.95 43.8%  0+0k 0+3io 0pf+0w
Almost twice as long :(.

[zhivago2:~/src/gccPRs] apinski% time /Volumes/UFS_Partition/pinskia/gcc-3.3/bin/gcc 
pr12322.i -O2 -ftime-report
Execution times (seconds)
 garbage collection    :   1.19 ( 2%) usr   0.04 ( 0%) sys   0.00 ( 0%) wall
 cfg construction      :   0.21 ( 0%) usr   0.01 ( 0%) sys   6.00 ( 6%) wall
 cfg cleanup           :   0.19 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 trivially dead code   :   1.23 ( 2%) usr   0.03 ( 0%) sys   0.00 ( 0%) wall
 life analysis         :   1.70 ( 3%) usr   0.27 ( 2%) sys   2.00 ( 2%) wall
 life info update      :   1.15 ( 2%) usr   0.27 ( 2%) sys   4.00 ( 4%) wall
 preprocessing         :   0.37 ( 1%) usr   0.63 ( 6%) sys   4.00 ( 4%) wall
 lexical analysis      :   0.56 ( 1%) usr   1.19 (11%) sys   2.00 ( 2%) wall
 parser                :   0.43 ( 1%) usr   0.54 ( 5%) sys   2.00 ( 2%) wall
 expand                :   0.60 ( 1%) usr   0.07 ( 1%) sys   0.00 ( 0%) wall
 varconst              :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 integration           :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 jump                  :   1.33 ( 2%) usr   0.14 ( 1%) sys   2.00 ( 2%) wall
 CSE                   :   2.29 ( 4%) usr   0.31 ( 3%) sys   6.00 ( 6%) wall
 global CSE            :  17.59 (29%) usr   0.61 ( 6%) sys  22.00 (23%) wall
 loop analysis         :   0.99 ( 2%) usr   0.54 ( 5%) sys   0.00 ( 0%) wall
 CSE 2                 :   0.73 ( 1%) usr   0.14 ( 1%) sys   0.00 ( 0%) wall
 branch prediction     :   0.26 ( 0%) usr   0.01 ( 0%) sys   0.00 ( 0%) wall
 flow analysis         :   0.17 ( 0%) usr   0.02 ( 0%) sys   0.00 ( 0%) wall
 combiner              :   1.21 ( 2%) usr   0.03 ( 0%) sys   0.00 ( 0%) wall
 if-conversion         :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 regmove               :   0.23 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 scheduling            :  20.32 (33%) usr   5.33 (49%) sys  32.00 (34%) wall
 local alloc           :   1.22 ( 2%) usr   0.04 ( 0%) sys   0.00 ( 0%) wall
 global alloc          :   2.35 ( 4%) usr   0.38 ( 3%) sys   4.00 ( 4%) wall
 reload CSE regs       :   3.05 ( 5%) usr   0.06 ( 1%) sys   6.00 ( 6%) wall
 flow 2                :   0.14 ( 0%) usr   0.03 ( 0%) sys   0.00 ( 0%) wall
 if-conversion 2       :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 rename registers      :   0.29 ( 0%) usr   0.06 ( 1%) sys   2.00 ( 2%) wall
 scheduling 2          :   0.64 ( 1%) usr   0.02 ( 0%) sys   0.00 ( 0%) wall
 reorder blocks        :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall
 shorten branches      :   0.12 ( 0%) usr   0.01 ( 0%) sys   0.00 ( 0%) wall
 final                 :   0.26 ( 0%) usr   0.02 ( 0%) sys   0.00 ( 0%) wall
 symout                :   0.01 ( 0%) usr   0.05 ( 0%) sys   0.00 ( 0%) wall
 rest of compilation   :   0.55 ( 1%) usr   0.01 ( 0%) sys   0.00 ( 0%) wall
 TOTAL                 :  61.62            10.87            94.00
61.880u 10.940s 1:35.24 76.4%   0+0k 0+6io 0pf+0w

[zhivago2:~/src/gccPRs] apinski% time ~/fsf-clean-nocheck/bin/gcc pr12322.i -S -O2 -
ftime-report

Execution times (seconds)
 garbage collection    :   1.44 ( 1%) usr   0.03 ( 0%) sys   1.93 ( 1%) wall
 callgraph construction:   0.12 ( 0%) usr   0.01 ( 0%) sys   0.14 ( 0%) wall
 cfg construction      :   0.18 ( 0%) usr   0.00 ( 0%) sys   0.20 ( 0%) wall
 cfg cleanup           :   0.86 ( 1%) usr   0.00 ( 0%) sys   0.90 ( 1%) wall
 trivially dead code   :   0.71 ( 1%) usr   0.03 ( 0%) sys   1.09 ( 1%) wall
 life analysis         :   1.77 ( 2%) usr   0.34 ( 3%) sys   2.40 ( 2%) wall
 life info update      :   1.28 ( 1%) usr   0.22 ( 2%) sys   1.75 ( 1%) wall
 alias analysis        :   1.36 ( 1%) usr   0.06 ( 1%) sys   1.69 ( 1%) wall
 register scan         :   0.44 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
 rebuild jump labels   :   0.21 ( 0%) usr   0.00 ( 0%) sys   0.24 ( 0%) wall
 preprocessing         :   0.37 ( 0%) usr   0.39 ( 3%) sys   1.11 ( 1%) wall
 lexical analysis      :   0.63 ( 1%) usr   1.05 ( 9%) sys   2.44 ( 2%) wall
 parser                :   0.64 ( 1%) usr   0.71 ( 6%) sys   1.58 ( 1%) wall
 expand                :   0.51 ( 0%) usr   0.11 ( 1%) sys   0.77 ( 0%) wall
 varconst              :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall
 integration           :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.09 ( 0%) wall
 jump                  :   1.10 ( 1%) usr   0.12 ( 1%) sys   1.61 ( 1%) wall
 CSE                   :   1.59 ( 1%) usr   0.01 ( 0%) sys   1.86 ( 1%) wall
 global CSE            :  66.08 (58%) usr   0.92 ( 8%) sys  82.58 (53%) wall
 loop analysis         :   0.68 ( 1%) usr   0.61 ( 5%) sys   1.35 ( 1%) wall
 bypass jumps          :   0.48 ( 0%) usr   0.07 ( 1%) sys   0.59 ( 0%) wall
 CSE 2                 :   0.51 ( 0%) usr   0.01 ( 0%) sys   0.76 ( 0%) wall
 branch prediction     :   0.43 ( 0%) usr   0.03 ( 0%) sys   0.49 ( 0%) wall
 flow analysis         :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall
 combiner              :   1.30 ( 1%) usr   0.01 ( 0%) sys   1.51 ( 1%) wall
 if-conversion         :   0.15 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%) wall
 regmove               :   0.22 ( 0%) usr   0.00 ( 0%) sys   0.22 ( 0%) wall
 scheduling            :  19.50 (17%) usr   5.99 (52%) sys  32.35 (21%) wall
 local alloc           :   0.82 ( 1%) usr   0.05 ( 0%) sys   1.29 ( 1%) wall
 global alloc          :   2.48 ( 2%) usr   0.26 ( 2%) sys   3.14 ( 2%) wall
 reload CSE regs       :   1.02 ( 1%) usr   0.00 ( 0%) sys   1.21 ( 1%) wall
 flow 2                :   0.06 ( 0%) usr   0.01 ( 0%) sys   0.09 ( 0%) wall
 if-conversion 2       :   4.49 ( 4%) usr   0.06 ( 1%) sys   5.95 ( 4%) wall
 rename registers      :   0.30 ( 0%) usr   0.02 ( 0%) sys   0.87 ( 1%) wall
 scheduling 2          :   0.63 ( 1%) usr   0.02 ( 0%) sys   0.72 ( 0%) wall
 reorder blocks        :   0.86 ( 1%) usr   0.20 ( 2%) sys   1.73 ( 1%) wall
 shorten branches      :   0.11 ( 0%) usr   0.01 ( 0%) sys   0.13 ( 0%) wall
 final                 :   0.47 ( 0%) usr   0.00 ( 0%) sys   0.48 ( 0%) wall
 symout                :   0.00 ( 0%) usr   0.04 ( 0%) sys   0.05 ( 0%) wall
 rest of compilation   :   0.76 ( 1%) usr   0.00 ( 0%) sys   0.88 ( 1%) wall
 TOTAL                 : 114.70            11.42           156.96
114.720u 11.500s 2:38.12 79.8%  0+0k 0+4io 0pf+0w


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