This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/19097] [4.3/4.4/4.5 regression] Quadratic behavior with many sets for the same register in VRP
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Dec 2009 13:02:48 -0000
- Subject: [Bug tree-optimization/19097] [4.3/4.4/4.5 regression] Quadratic behavior with many sets for the same register in VRP
- References: <bug-19097-7737@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #53 from steven at gcc dot gnu dot org 2009-12-24 13:02 -------
I cannot reproduce this anymore on ia64 -- at least not for VRP and CPROP. The
slowest pass is now expand:
dominator optimization: 0.40 ( 1%) usr 0.00 ( 0%) sys 0.40 ( 1%) wall
2188 kB ( 3%) ggc
tree CCP : 0.17 ( 0%) usr 0.00 ( 0%) sys 0.16 ( 0%) wall
0 kB ( 0%) ggc
tree PHI const/copy prop: 0.02 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree split crit edges : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree reassociation : 0.11 ( 0%) usr 0.00 ( 0%) sys 0.10 ( 0%) wall
0 kB ( 0%) ggc
tree PRE : 0.16 ( 0%) usr 0.00 ( 0%) sys 0.16 ( 0%) wall
1 kB ( 0%) ggc
tree FRE : 0.12 ( 0%) usr 0.00 ( 1%) sys 0.12 ( 0%) wall
1 kB ( 0%) ggc
tree code sinking : 0.08 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
0 kB ( 0%) ggc
tree linearize phis : 0.07 ( 0%) usr 0.00 ( 0%) sys 0.07 ( 0%) wall
0 kB ( 0%) ggc
tree forward propagate: 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
0 kB ( 0%) ggc
tree conservative DCE : 0.08 ( 0%) usr 0.01 ( 2%) sys 0.10 ( 0%) wall
0 kB ( 0%) ggc
tree aggressive DCE : 0.28 ( 0%) usr 0.00 ( 1%) sys 0.28 ( 0%) wall
3 kB ( 0%) ggc
tree buildin call DCE : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree DSE : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
PHI merge : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
complete unrolling : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
0 kB ( 0%) ggc
tree loop init : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
0 kB ( 0%) ggc
tree copy headers : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
tree SSA uncprop : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
0 kB ( 0%) ggc
tree rename SSA copies: 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
tree switch initialization conversion: 0.01 ( 0%) usr 0.00 ( 0%) sys
0.01 ( 0%) wall 0 kB ( 0%) ggc
dominance frontiers : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
dominance computation : 0.62 ( 1%) usr 0.00 ( 1%) sys 0.64 ( 1%) wall
0 kB ( 0%) ggc
control dependences : 0.03 ( 0%) usr 0.00 ( 0%) sys 0.03 ( 0%) wall
0 kB ( 0%) ggc
expand : 3.13 ( 5%) usr 0.06 ( 7%) sys 3.21 ( 5%) wall
17093 kB (26%) ggc
forward prop : 0.79 ( 1%) usr 0.00 ( 1%) sys 0.79 ( 1%) wall
703 kB ( 1%) ggc
CSE : 1.36 ( 2%) usr 0.00 ( 0%) sys 1.36 ( 2%) wall
0 kB ( 0%) ggc
dead code elimination : 0.15 ( 0%) usr 0.00 ( 0%) sys 0.16 ( 0%) wall
0 kB ( 0%) ggc
dead store elim1 : 0.39 ( 1%) usr 0.00 ( 0%) sys 0.39 ( 1%) wall
390 kB ( 1%) ggc
loop analysis : 0.04 ( 0%) usr 0.00 ( 0%) sys 0.04 ( 0%) wall
0 kB ( 0%) ggc
CPROP : 1.96 ( 3%) usr 0.18 (23%) sys 2.15 ( 3%) wall
6094 kB ( 9%) ggc
PRE : 1.26 ( 2%) usr 0.20 (27%) sys 1.46 ( 2%) wall
0 kB ( 0%) ggc
auto inc dec : 0.19 ( 0%) usr 0.00 ( 0%) sys 0.19 ( 0%) wall
0 kB ( 0%) ggc
CSE 2 : 1.69 ( 3%) usr 0.00 ( 0%) sys 1.69 ( 3%) wall
1288 kB ( 2%) ggc
branch prediction : 0.22 ( 0%) usr 0.00 ( 0%) sys 0.22 ( 0%) wall
0 kB ( 0%) ggc
combiner : 0.62 ( 1%) usr 0.00 ( 0%) sys 0.62 ( 1%) wall
234 kB ( 0%) ggc
if-conversion : 0.05 ( 0%) usr 0.00 ( 0%) sys 0.05 ( 0%) wall
0 kB ( 0%) ggc
scheduling : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
integrated RA : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
512 kB ( 1%) ggc
reload : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
0 kB ( 0%) ggc
scheduling 2 : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.02 ( 0%) wall
8 kB ( 0%) ggc
tree if-combine : 0.02 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
0 kB ( 0%) ggc
TOTAL : 61.41 0.77 62.18
66790 kB
But this expand slowness also manifests itself at -O0 (IRA and gimplifier
slow), and at -O1 and -O3 (expand). I don't find this unreasnable at all, for
20000 conditionals and 20000 function calls (and all the stack and temp slots
saving/restoring involved). Closing.
--
steven at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WORKSFORME
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19097