This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/8361] [3.4/4.0/4.1 regression] C++ compile-time performance regression
- 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: 18 Sep 2005 19:17:52 -0000
- Subject: [Bug rtl-optimization/8361] [3.4/4.0/4.1 regression] C++ compile-time performance regression
- References: <20021025133601.8361.gerald@pfeifer.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-18 19:17 -------
Current numbers for 4.0.0 vs 4.1.0:
pc64:~/src/pr8361> time ~/onetest.release/bin/gcc pr8361.ii -S -m32 -O1
21.137u 0.399s 0:21.89 98.3% 0+0k 0+0io 3pf+0w
pc64:~/src/pr8361> time gcc-4.0 pr8361.ii -S -m32 -O1
14.059u 0.269s 0:14.46 98.9% 0+0k 0+0io 2pf+0w
This on x86_64-pc-linux-gnu.
-ftime-report for 4.1.0:
Execution times (seconds)
garbage collection : 0.35 ( 2%) usr 0.01 ( 1%) sys 0.37 ( 2%) wall 0 kB ( 0%) ggc
callgraph construction: 0.13 ( 1%) usr 0.01 ( 1%) sys 0.18 ( 1%) wall 4538 kB ( 1%) ggc
callgraph optimization: 0.01 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 1193 kB ( 0%) ggc
ipa reference : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 273 kB ( 0%) ggc
ipa pure const : 0.04 ( 0%) usr 0.01 ( 1%) sys 0.04 ( 0%) wall 0 kB ( 0%) ggc
cfg construction : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 1607 kB ( 0%) ggc
cfg cleanup : 0.14 ( 1%) usr 0.01 ( 1%) sys 0.13 ( 1%) wall 103 kB ( 0%) ggc
trivially dead code : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.17 ( 1%) wall 0 kB ( 0%) ggc
life analysis : 0.52 ( 2%) usr 0.00 ( 0%) sys 0.52 ( 2%) wall 3245 kB ( 0%) ggc
life info update : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 292 kB ( 0%) ggc
alias analysis : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.17 ( 1%) wall 2150 kB ( 0%) ggc
register scan : 0.16 ( 1%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 211 kB ( 0%) ggc
rebuild jump labels : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 1 kB ( 0%) ggc
preprocessing : 0.13 ( 1%) usr 0.15 ( 8%) sys 0.28 ( 1%) wall 591 kB ( 0%) ggc
parser : 1.80 ( 8%) usr 0.42 (23%) sys 2.35 (10%) wall 154459 kB (23%) ggc
name lookup : 0.57 ( 3%) usr 0.46 (25%) sys 0.97 ( 4%) wall 31048 kB ( 5%) ggc
inline heuristics : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall 7605 kB ( 1%) ggc
integration : 1.14 ( 5%) usr 0.01 ( 1%) sys 1.14 ( 5%) wall 162853 kB (24%) ggc
tree gimplify : 0.30 ( 1%) usr 0.02 ( 1%) sys 0.28 ( 1%) wall 14133 kB ( 2%) ggc
tree eh : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 1795 kB ( 0%) ggc
tree CFG construction : 0.02 ( 0%) usr 0.01 ( 1%) sys 0.04 ( 0%) wall 11718 kB ( 2%) ggc
tree CFG cleanup : 0.49 ( 2%) usr 0.00 ( 0%) sys 0.68 ( 3%) wall 3669 kB ( 1%) ggc
tree copy propagation : 0.60 ( 3%) usr 0.00 ( 0%) sys 0.63 ( 3%) wall 1441 kB ( 0%) ggc
tree store copy prop : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall 181 kB ( 0%) ggc
tree find ref. vars : 0.25 ( 1%) usr 0.01 ( 1%) sys 0.29 ( 1%) wall 22675 kB ( 3%) ggc
tree PTA : 1.61 ( 7%) usr 0.02 ( 1%) sys 1.72 ( 7%) wall 10266 kB ( 2%) ggc
tree alias analysis : 1.05 ( 5%) usr 0.15 ( 8%) sys 1.23 ( 5%) wall 11045 kB ( 2%) ggc
tree PHI insertion : 0.29 ( 1%) usr 0.00 ( 0%) sys 0.29 ( 1%) wall 16546 kB ( 2%) ggc
tree SSA rewrite : 0.65 ( 3%) usr 0.01 ( 1%) sys 0.76 ( 3%) wall 30896 kB ( 5%) ggc
tree SSA other : 0.15 ( 1%) usr 0.06 ( 3%) sys 0.20 ( 1%) wall 580 kB ( 0%) ggc
tree SSA incremental : 1.58 ( 7%) usr 0.01 ( 1%) sys 1.34 ( 6%) wall 6475 kB ( 1%) ggc
tree operand scan : 1.15 ( 5%) usr 0.25 (14%) sys 1.47 ( 6%) wall 15753 kB ( 2%) ggc
dominator optimization: 0.80 ( 4%) usr 0.04 ( 2%) sys 0.84 ( 4%) wall 14884 kB ( 2%) ggc
tree SRA : 0.22 ( 1%) usr 0.02 ( 1%) sys 0.20 ( 1%) wall 11416 kB ( 2%) ggc
tree STORE-CCP : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall 165 kB ( 0%) ggc
tree CCP : 0.21 ( 1%) usr 0.00 ( 0%) sys 0.19 ( 1%) wall 601 kB ( 0%) ggc
tree split crit edges : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 6441 kB ( 1%) ggc
tree reassociation : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 1 kB ( 0%) ggc
tree FRE : 0.51 ( 2%) usr 0.02 ( 1%) sys 0.53 ( 2%) wall 16049 kB ( 2%) ggc
tree code sinking : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 54 kB ( 0%) ggc
tree linearize phis : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 16 kB ( 0%) ggc
tree forward propagate: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 1%) wall 3515 kB ( 1%) ggc
tree conservative DCE : 0.39 ( 2%) usr 0.00 ( 0%) sys 0.49 ( 2%) wall 0 kB ( 0%) ggc
tree aggressive DCE : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 0 kB ( 0%) ggc
tree DSE : 0.11 ( 1%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall 85 kB ( 0%) ggc
PHI merge : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 966 kB ( 0%) ggc
tree loop bounds : 0.14 ( 1%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 1796 kB ( 0%) ggc
loop invariant motion : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 158 kB ( 0%) ggc
tree canonical iv : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 955 kB ( 0%) ggc
scev constant prop : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 721 kB ( 0%) ggc
complete unrolling : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall 1340 kB ( 0%) ggc
tree iv optimization : 0.15 ( 1%) usr 0.01 ( 1%) sys 0.18 ( 1%) wall 7715 kB ( 1%) ggc
tree loop init : 0.11 ( 1%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall 6 kB ( 0%) ggc
tree copy headers : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall 6478 kB ( 1%) ggc
tree SSA uncprop : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall 0 kB ( 0%) ggc
tree SSA to normal : 0.31 ( 1%) usr 0.00 ( 0%) sys 0.41 ( 2%) wall 3411 kB ( 1%) ggc
tree rename SSA copies: 0.10 ( 0%) usr 0.01 ( 1%) sys 0.16 ( 1%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.09 ( 0%) wall 0 kB ( 0%) ggc
expand : 1.28 ( 6%) usr 0.02 ( 1%) sys 1.12 ( 5%) wall 43499 kB ( 7%) ggc
varconst : 0.08 ( 0%) usr 0.02 ( 1%) sys 0.05 ( 0%) wall 403 kB ( 0%) ggc
jump : 0.05 ( 0%) usr 0.01 ( 1%) sys 0.06 ( 0%) wall 1203 kB ( 0%) ggc
CSE : 0.22 ( 1%) usr 0.00 ( 0%) sys 0.20 ( 1%) wall 647 kB ( 0%) ggc
loop analysis : 0.10 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 1%) wall 1936 kB ( 0%) ggc
branch prediction : 0.20 ( 1%) usr 0.01 ( 1%) sys 0.18 ( 1%) wall 1979 kB ( 0%) ggc
flow analysis : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 2 kB ( 0%) ggc
combiner : 0.46 ( 2%) usr 0.00 ( 0%) sys 0.50 ( 2%) wall 5390 kB ( 1%) ggc
if-conversion : 0.08 ( 0%) usr 0.01 ( 1%) sys 0.06 ( 0%) wall 308 kB ( 0%) ggc
local alloc : 0.25 ( 1%) usr 0.01 ( 1%) sys 0.26 ( 1%) wall 1622 kB ( 0%) ggc
global alloc : 0.85 ( 4%) usr 0.01 ( 1%) sys 0.78 ( 3%) wall 9331 kB ( 1%) ggc
reload CSE regs : 0.17 ( 1%) usr 0.00 ( 0%) sys 0.17 ( 1%) wall 2917 kB ( 0%) ggc
flow 2 : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 1058 kB ( 0%) ggc
if-conversion 2 : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 37 kB ( 0%) ggc
rename registers : 0.14 ( 1%) usr 0.00 ( 0%) sys 0.15 ( 1%) wall 21 kB ( 0%) ggc
machine dep reorg : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.19 ( 1%) wall 86 kB ( 0%) ggc
shorten branches : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall 0 kB ( 0%) ggc
final : 0.24 ( 1%) usr 0.00 ( 0%) sys 0.17 ( 1%) wall 1199 kB ( 0%) ggc
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 180 kB ( 0%) ggc
TOTAL : 21.70 1.81 23.79 667733 kB
for 4.0.0:
Execution times (seconds)
garbage collection : 0.32 ( 2%) usr 0.00 ( 0%) sys 0.32 ( 2%) wall
callgraph construction: 0.08 ( 1%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
callgraph optimization: 0.04 ( 0%) usr 0.01 ( 1%) sys 0.04 ( 0%) wall
cfg construction : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
cfg cleanup : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
trivially dead code : 0.08 ( 1%) usr 0.00 ( 0%) sys 0.09 ( 1%) wall
life analysis : 0.43 ( 3%) usr 0.00 ( 0%) sys 0.44 ( 3%) wall
life info update : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.13 ( 1%) wall
alias analysis : 0.08 ( 1%) usr 0.00 ( 0%) sys 0.13 ( 1%) wall
register scan : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.14 ( 1%) wall
rebuild jump labels : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
preprocessing : 0.11 ( 1%) usr 0.15 ( 9%) sys 0.22 ( 1%) wall
parser : 2.00 (14%) usr 0.46 (29%) sys 2.20 (13%) wall
name lookup : 0.49 ( 3%) usr 0.44 (28%) sys 1.12 ( 7%) wall
integration : 0.67 ( 5%) usr 0.03 ( 2%) sys 0.77 ( 5%) wall
tree gimplify : 0.23 ( 2%) usr 0.01 ( 1%) sys 0.35 ( 2%) wall
tree eh : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.06 ( 0%) wall
tree CFG construction : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.11 ( 1%) wall
tree CFG cleanup : 0.22 ( 2%) usr 0.00 ( 0%) sys 0.15 ( 1%) wall
tree find referenced vars: 0.23 ( 2%) usr 0.00 ( 0%) sys 0.20 ( 1%) wall
tree PTA : 0.37 ( 3%) usr 0.01 ( 1%) sys 0.45 ( 3%) wall
tree alias analysis : 0.51 ( 3%) usr 0.00 ( 0%) sys 0.56 ( 3%) wall
tree PHI insertion : 0.17 ( 1%) usr 0.00 ( 0%) sys 0.24 ( 1%) wall
tree SSA rewrite : 0.54 ( 4%) usr 0.01 ( 1%) sys 0.47 ( 3%) wall
tree SSA other : 0.58 ( 4%) usr 0.16 (10%) sys 0.85 ( 5%) wall
tree operand scan : 0.51 ( 3%) usr 0.21 (13%) sys 0.68 ( 4%) wall
dominator optimization: 0.76 ( 5%) usr 0.05 ( 3%) sys 0.66 ( 4%) wall
tree SRA : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.13 ( 1%) wall
tree CCP : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.12 ( 1%) wall
tree split crit edges : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
tree remove redundant PHIs: 0.26 ( 2%) usr 0.00 ( 0%) sys 0.33 ( 2%) wall
tree linearize phis : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
tree forward propagate: 0.15 ( 1%) usr 0.00 ( 0%) sys 0.12 ( 1%) wall
tree conservative DCE : 0.26 ( 2%) usr 0.00 ( 0%) sys 0.26 ( 2%) wall
tree aggressive DCE : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
tree DSE : 0.06 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
PHI merge : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.00 ( 0%) wall
tree record loop bounds: 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
loop invariant motion : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
tree canonical iv creation: 0.03 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
tree iv optimization : 0.22 ( 2%) usr 0.01 ( 1%) sys 0.13 ( 1%) wall
tree loop init : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
tree loop fini : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
tree copy headers : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.17 ( 1%) wall
tree SSA to normal : 0.33 ( 2%) usr 0.00 ( 0%) sys 0.30 ( 2%) wall
tree NRV optimization : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
tree rename SSA copies: 0.11 ( 1%) usr 0.00 ( 0%) sys 0.10 ( 1%) wall
dominance frontiers : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
expand : 0.97 ( 7%) usr 0.01 ( 1%) sys 1.06 ( 6%) wall
varconst : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 1%) wall
jump : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
CSE : 0.27 ( 2%) usr 0.00 ( 0%) sys 0.22 ( 1%) wall
loop analysis : 0.08 ( 1%) usr 0.00 ( 0%) sys 0.09 ( 1%) wall
branch prediction : 0.18 ( 1%) usr 0.00 ( 0%) sys 0.19 ( 1%) wall
flow analysis : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
combiner : 0.39 ( 3%) usr 0.00 ( 0%) sys 0.35 ( 2%) wall
if-conversion : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.08 ( 0%) wall
local alloc : 0.22 ( 2%) usr 0.00 ( 0%) sys 0.20 ( 1%) wall
global alloc : 0.64 ( 4%) usr 0.01 ( 1%) sys 0.66 ( 4%) wall
reload CSE regs : 0.21 ( 1%) usr 0.00 ( 0%) sys 0.13 ( 1%) wall
flow 2 : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
if-conversion 2 : 0.07 ( 0%) usr 0.01 ( 1%) sys 0.02 ( 0%) wall
rename registers : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.12 ( 1%) wall
machine dep reorg : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.11 ( 1%) wall
shorten branches : 0.10 ( 1%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
final : 0.18 ( 1%) usr 0.02 ( 1%) sys 0.24 ( 1%) wall
symout : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
rest of compilation : 0.12 ( 1%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
TOTAL : 14.62 1.60 16.43
14.630u 1.630s 0:16.46 98.7% 0+0k 0+0io 0pf+0w
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361