This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/12322] [3.4 Regression] Significant slowdown when compiling computed-goto code in Parrot, GCSE is slower
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Sep 2003 08:40:28 -0000
- Subject: [Bug optimization/12322] [3.4 Regression] Significant slowdown when compiling computed-goto code in Parrot, GCSE is slower
- References: <20030917233348.12322.ahaas@airmail.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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