[Bug rtl-optimization/42175] Slow compile and much memory use at -O1

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Nov 27 11:58:00 GMT 2009



------- Comment #3 from rguenth at gcc dot gnu dot org  2009-11-27 11:58 -------
4.5 shows at -O1:

Execution times (seconds)
 garbage collection    :   1.66 ( 1%) usr   0.05 ( 0%) sys   1.73 ( 1%) wall   
   0 kB ( 0%) ggc
 callgraph construction:   0.11 ( 0%) usr   0.00 ( 0%) sys   0.13 ( 0%) wall  
12135 kB ( 1%) ggc
 callgraph optimization:   0.77 ( 1%) usr   0.03 ( 0%) sys   0.83 ( 1%) wall   
2655 kB ( 0%) ggc
 ipa reference         :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
   0 kB ( 0%) ggc
 ipa pure const        :   0.14 ( 0%) usr   0.00 ( 0%) sys   0.15 ( 0%) wall   
 338 kB ( 0%) ggc
 ipa free lang data    :   0.20 ( 0%) usr   0.00 ( 0%) sys   0.20 ( 0%) wall   
 679 kB ( 0%) ggc
 cfg cleanup           :   0.95 ( 1%) usr   0.00 ( 0%) sys   0.99 ( 1%) wall   
 308 kB ( 0%) ggc
 trivially dead code   :   0.33 ( 0%) usr   0.00 ( 0%) sys   0.31 ( 0%) wall   
   0 kB ( 0%) ggc
 df multiple defs      :   9.71 ( 7%) usr   0.34 ( 2%) sys  10.07 ( 7%) wall   
   0 kB ( 0%) ggc
 df reaching defs      :   6.12 ( 5%) usr   0.01 ( 0%) sys   5.99 ( 4%) wall   
   0 kB ( 0%) ggc
 df live regs          :   6.30 ( 5%) usr   0.00 ( 0%) sys   6.32 ( 4%) wall   
   0 kB ( 0%) ggc
 df live&initialized regs:   8.70 ( 7%) usr   0.00 ( 0%) sys   8.73 ( 6%) wall 
     0 kB ( 0%) ggc
 df use-def / def-use chains:   0.11 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%)
wall       0 kB ( 0%) ggc
 df reg dead/unused notes:   1.56 ( 1%) usr   0.00 ( 0%) sys   1.56 ( 1%) wall 
 19924 kB ( 1%) ggc
 register information  :   0.61 ( 0%) usr   0.00 ( 0%) sys   0.58 ( 0%) wall   
   0 kB ( 0%) ggc
 alias analysis        :   0.69 ( 1%) usr   0.00 ( 0%) sys   0.68 ( 0%) wall  
36096 kB ( 2%) ggc
 alias stmt walking    :   0.23 ( 0%) usr   0.11 ( 1%) sys   0.32 ( 0%) wall   
   0 kB ( 0%) ggc
 register scan         :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
 117 kB ( 0%) ggc
 rebuild jump labels   :   0.20 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall   
   0 kB ( 0%) ggc
 preprocessing         :   0.12 ( 0%) usr   0.12 ( 1%) sys   0.25 ( 0%) wall   
2516 kB ( 0%) ggc
 parser                :   2.13 ( 2%) usr   0.30 ( 2%) sys   2.57 ( 2%) wall 
284375 kB (17%) ggc
 name lookup           :   0.43 ( 0%) usr   0.27 ( 2%) sys   0.54 ( 0%) wall  
26614 kB ( 2%) ggc
 inline heuristics     :   0.65 ( 0%) usr   0.02 ( 0%) sys   0.67 ( 0%) wall  
10162 kB ( 1%) ggc
 integration           :   1.16 ( 1%) usr   0.19 ( 1%) sys   1.21 ( 1%) wall 
250954 kB (15%) ggc
 tree gimplify         :   0.58 ( 0%) usr   0.02 ( 0%) sys   0.58 ( 0%) wall 
101453 kB ( 6%) ggc
 tree eh               :   0.15 ( 0%) usr   0.00 ( 0%) sys   0.13 ( 0%) wall   
7971 kB ( 0%) ggc
 tree CFG construction :   0.12 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%) wall  
29744 kB ( 2%) ggc
 tree CFG cleanup      :   1.40 ( 1%) usr   0.01 ( 0%) sys   1.22 ( 1%) wall   
6447 kB ( 0%) ggc
 tree copy propagation :   0.68 ( 1%) usr   0.00 ( 0%) sys   0.75 ( 1%) wall   
2410 kB ( 0%) ggc
 tree find ref. vars   :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
5799 kB ( 0%) ggc
 tree PTA              :   0.51 ( 0%) usr   0.02 ( 0%) sys   0.58 ( 0%) wall   
7695 kB ( 0%) ggc
 tree PHI insertion    :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall   
8341 kB ( 0%) ggc
 tree SSA rewrite      :   0.52 ( 0%) usr   0.01 ( 0%) sys   0.58 ( 0%) wall  
36397 kB ( 2%) ggc
 tree SSA other        :   0.09 ( 0%) usr   0.03 ( 0%) sys   0.13 ( 0%) wall   
 352 kB ( 0%) ggc
 tree SSA incremental  :   2.69 ( 2%) usr   0.04 ( 0%) sys   2.87 ( 2%) wall  
14341 kB ( 1%) ggc
 tree operand scan     :   0.54 ( 0%) usr   0.17 ( 1%) sys   0.85 ( 1%) wall 
100704 kB ( 6%) ggc
 dominator optimization:   0.90 ( 1%) usr   0.00 ( 0%) sys   0.97 ( 1%) wall  
23583 kB ( 1%) ggc
 tree SRA              :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) wall   
 417 kB ( 0%) ggc
 tree CCP              :   0.82 ( 1%) usr   0.01 ( 0%) sys   0.94 ( 1%) wall   
8250 kB ( 0%) ggc
 tree PHI const/copy prop:   0.08 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall 
   492 kB ( 0%) ggc
 tree split crit edges :   0.04 ( 0%) usr   0.01 ( 0%) sys   0.05 ( 0%) wall  
19160 kB ( 1%) ggc
 tree reassociation    :   0.31 ( 0%) usr   0.00 ( 0%) sys   0.24 ( 0%) wall   
7811 kB ( 0%) ggc
 tree FRE              :   1.22 ( 1%) usr   0.01 ( 0%) sys   1.29 ( 1%) wall   
9250 kB ( 1%) ggc
 tree code sinking     :   0.16 ( 0%) usr   0.00 ( 0%) sys   0.21 ( 0%) wall   
2506 kB ( 0%) ggc
 tree linearize phis   :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall   
 801 kB ( 0%) ggc
 tree forward propagate:   0.23 ( 0%) usr   0.01 ( 0%) sys   0.17 ( 0%) wall   
7457 kB ( 0%) ggc
 tree phiprop          :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
  13 kB ( 0%) ggc
 tree conservative DCE :   0.32 ( 0%) usr   0.02 ( 0%) sys   0.38 ( 0%) wall   
  26 kB ( 0%) ggc
 tree aggressive DCE   :   0.22 ( 0%) usr   0.01 ( 0%) sys   0.24 ( 0%) wall   
  35 kB ( 0%) ggc
 tree DSE              :   0.17 ( 0%) usr   0.00 ( 0%) sys   0.12 ( 0%) wall   
 440 kB ( 0%) ggc
 PHI merge             :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
1351 kB ( 0%) ggc
 tree loop bounds      :   0.14 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall   
4813 kB ( 0%) ggc
 loop invariant motion :   0.45 ( 0%) usr   0.00 ( 0%) sys   0.36 ( 0%) wall   
  57 kB ( 0%) ggc
 tree canonical iv     :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall   
5261 kB ( 0%) ggc
 scev constant prop    :   0.15 ( 0%) usr   0.01 ( 0%) sys   0.11 ( 0%) wall   
9369 kB ( 1%) ggc
 complete unrolling    :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
3410 kB ( 0%) ggc
 tree iv optimization  :   1.86 ( 1%) usr   0.01 ( 0%) sys   1.73 ( 1%) wall 
145322 kB ( 9%) ggc
 tree loop init        :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall   
4518 kB ( 0%) ggc
 tree copy headers     :   0.10 ( 0%) usr   0.00 ( 0%) sys   0.13 ( 0%) wall  
12790 kB ( 1%) ggc
 tree SSA uncprop      :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) wall   
   0 kB ( 0%) ggc
 tree NRV optimization :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  21 kB ( 0%) ggc
 tree rename SSA copies:   0.24 ( 0%) usr   0.00 ( 0%) sys   0.18 ( 0%) wall   
   0 kB ( 0%) ggc
 tree switch initialization conversion:   0.00 ( 0%) usr   0.01 ( 0%) sys  
0.01 ( 0%) wall       3 kB ( 0%) ggc
 dominance frontiers   :   0.58 ( 0%) usr   0.00 ( 0%) sys   0.56 ( 0%) wall   
   0 kB ( 0%) ggc
 dominance computation :   1.13 ( 1%) usr   0.00 ( 0%) sys   1.06 ( 1%) wall   
   0 kB ( 0%) ggc
 expand                :   6.74 ( 5%) usr   0.04 ( 0%) sys   7.00 ( 5%) wall 
197896 kB (12%) ggc
 varconst              :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
 340 kB ( 0%) ggc
 lower subreg          :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
   0 kB ( 0%) ggc
 jump                  :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.10 ( 0%) wall   
4317 kB ( 0%) ggc
 forward prop          :   1.25 ( 1%) usr   0.02 ( 0%) sys   1.20 ( 1%) wall  
16469 kB ( 1%) ggc
 CSE                   :   0.82 ( 1%) usr   0.00 ( 0%) sys   0.74 ( 0%) wall   
1324 kB ( 0%) ggc
 dead code elimination :   0.28 ( 0%) usr   0.00 ( 0%) sys   0.25 ( 0%) wall   
   0 kB ( 0%) ggc
 dead store elim1      :   0.83 ( 1%) usr   0.01 ( 0%) sys   0.80 ( 1%) wall  
10643 kB ( 1%) ggc
 dead store elim2      :   0.63 ( 0%) usr   0.00 ( 0%) sys   0.69 ( 0%) wall  
15696 kB ( 1%) ggc
 loop analysis         :  39.45 (30%) usr   0.00 ( 0%) sys  39.59 (27%) wall   
8374 kB ( 1%) ggc
 branch prediction     :   0.44 ( 0%) usr   0.00 ( 0%) sys   0.39 ( 0%) wall  
14907 kB ( 1%) ggc
 combiner              :   2.66 ( 2%) usr   0.02 ( 0%) sys   2.90 ( 2%) wall  
57748 kB ( 3%) ggc
 if-conversion         :   1.04 ( 1%) usr   0.02 ( 0%) sys   1.05 ( 1%) wall   
7066 kB ( 0%) ggc
 integrated RA         :   7.11 ( 5%) usr  11.66 (85%) sys  20.52 (14%) wall  
34152 kB ( 2%) ggc
 reload                :   5.83 ( 4%) usr   0.02 ( 0%) sys   5.80 ( 4%) wall  
34513 kB ( 2%) ggc
 reload CSE regs       :   3.73 ( 3%) usr   0.01 ( 0%) sys   3.73 ( 3%) wall  
16022 kB ( 1%) ggc
 thread pro- & epilogue:   0.21 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%) wall   
3221 kB ( 0%) ggc
 if-conversion 2       :   0.16 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
2270 kB ( 0%) ggc
 combine stack adjustments:   0.07 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall
      0 kB ( 0%) ggc
 hard reg cprop        :   0.51 ( 0%) usr   0.00 ( 0%) sys   0.54 ( 0%) wall   
 184 kB ( 0%) ggc
 machine dep reorg     :   0.46 ( 0%) usr   0.00 ( 0%) sys   0.39 ( 0%) wall   
 179 kB ( 0%) ggc
 reorder blocks        :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
5860 kB ( 0%) ggc
 final                 :   1.05 ( 1%) usr   0.00 ( 0%) sys   0.94 ( 1%) wall   
1285 kB ( 0%) ggc
 tree if-combine       :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
  25 kB ( 0%) ggc
 TOTAL                 : 133.52            13.64           149.03           
1669511 kB

so we spend 30% in "loop analysis" (all RTL loop opt passes) which is
a lot better than 4.4 but still too much for -O1.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-11-27 11:58:38
               date|                            |


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



More information about the Gcc-bugs mailing list