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

--- Comment #30 from davidxl <xinliangli at gmail dot com> 2011-01-21 19:58:41 
UTC ---
(In reply to comment #29)
> (In reply to comment #28)
> > David, any progress with this?
> 
> The cost function fix to make sure solution set does not become too big will 
> be
> probably very involved and won't be availlable in 4.6 time frame. I will get a
> workaround using Richard's suggestion -- terminate the iterating loop when 
> slow
> convergence is detected and some limit is reached.
> 
> David


Two observations:
1) I can not reproduce the timing by Joost -- see below. Can someone else
measure the time independently?

2) Limiting the iteration count of ivopt improvement loop does not help that
much: from unlimited (can be ~40 in this case) to max iteration of 5 only
cutdown total compile time by 2s.


The following is the timing of the trunk compiler. Options: 
-O2 -ftime-report -cpp -fbounds-check -g -O3 -ffast-math -funroll-loops
-ftree-vectorize -march=native -ffree-form 

 parser                :   0.67 ( 1%) usr   0.09 ( 6%) sys   0.77 ( 1%) wall  
53556 kB ( 5%) ggc
 inline heuristics     :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%) wall   
   0 kB ( 0%) ggc
 tree gimplify         :   0.35 ( 1%) usr   0.03 ( 2%) sys   0.38 ( 1%) wall  
48426 kB ( 4%) ggc
 tree eh               :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
   0 kB ( 0%) ggc
 tree CFG construction :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall  
11978 kB ( 1%) ggc
 tree CFG cleanup      :   0.68 ( 1%) usr   0.02 ( 1%) sys   0.64 ( 1%) wall   
2484 kB ( 0%) ggc
 tree VRP              :   0.83 ( 1%) usr   0.02 ( 1%) sys   1.28 ( 2%) wall  
64371 kB ( 6%) ggc
 tree copy propagation :   0.16 ( 0%) usr   0.00 ( 0%) sys   0.16 ( 0%) wall   
1267 kB ( 0%) ggc
 tree find ref. vars   :   0.06 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall   
3806 kB ( 0%) ggc
 tree PTA              :   0.82 ( 1%) usr   0.00 ( 0%) sys   0.80 ( 1%) wall   
5497 kB ( 0%) ggc
 tree PHI insertion    :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
3194 kB ( 0%) ggc
 tree SSA rewrite      :   0.23 ( 0%) usr   0.01 ( 1%) sys   0.21 ( 0%) wall  
14021 kB ( 1%) ggc
 tree SSA other        :   0.06 ( 0%) usr   0.01 ( 1%) sys   0.09 ( 0%) wall   
 435 kB ( 0%) ggc
 tree SSA incremental  :   0.65 ( 1%) usr   0.02 ( 1%) sys   0.65 ( 1%) wall   
6735 kB ( 1%) ggc
 tree operand scan     :   0.37 ( 1%) usr   0.14 ( 9%) sys   0.53 ( 1%) wall  
47156 kB ( 4%) ggc
 dominator optimization:   0.38 ( 1%) usr   0.02 ( 1%) sys   0.50 ( 1%) wall   
6948 kB ( 1%) ggc
 tree SRA              :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
   0 kB ( 0%) ggc
 tree CCP              :   0.93 ( 1%) usr   0.01 ( 1%) sys   1.02 ( 2%) wall   
4975 kB ( 0%) ggc
 tree PHI const/copy prop:   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall 
   124 kB ( 0%) ggc
 tree split crit edges :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
1743 kB ( 0%) ggc
 tree reassociation    :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.20 ( 0%) wall   
5095 kB ( 0%) ggc
 tree PRE              :   0.64 ( 1%) usr   0.00 ( 0%) sys   0.64 ( 1%) wall   
9790 kB ( 1%) ggc
 tree FRE              :   0.28 ( 0%) usr   0.00 ( 0%) sys   0.31 ( 0%) wall   
5410 kB ( 0%) ggc
 tree code sinking     :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
 956 kB ( 0%) ggc
 tree linearize phis   :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
   0 kB ( 0%) ggc
 tree forward propagate:   0.17 ( 0%) usr   0.00 ( 0%) sys   0.16 ( 0%) wall  
11005 kB ( 1%) ggc
 tree phiprop          :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
   0 kB ( 0%) ggc
 tree conservative DCE :   0.04 ( 0%) usr   0.02 ( 1%) sys   0.06 ( 0%) wall   
 944 kB ( 0%) ggc
 tree aggressive DCE   :   0.31 ( 0%) usr   0.03 ( 2%) sys   0.40 ( 1%) wall  
15336 kB ( 1%) ggc
 tree DSE              :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) wall   
 225 kB ( 0%) ggc
 tree loop bounds      :   0.16 ( 0%) usr   0.00 ( 0%) sys   0.17 ( 0%) wall   
6744 kB ( 1%) ggc
 tree loop invariant motion:   0.05 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%)
wall     485 kB ( 0%) ggc
 tree canonical iv     :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall   
3128 kB ( 0%) ggc
 scev constant prop    :   0.04 ( 0%) usr   0.01 ( 1%) sys   0.03 ( 0%) wall   
1924 kB ( 0%) ggc
 complete unrolling    :   0.79 ( 1%) usr   0.05 ( 3%) sys   0.85 ( 1%) wall  
91364 kB ( 8%) ggc
 tree vectorization    :   0.34 ( 1%) usr   0.00 ( 0%) sys   0.37 ( 1%) wall  
25117 kB ( 2%) ggc
 tree slp vectorization:   0.41 ( 1%) usr   0.00 ( 0%) sys   0.35 ( 1%) wall  
19256 kB ( 2%) ggc
 tree loop distribution:   0.04 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall   
 850 kB ( 0%) ggc
 tree iv optimization  :  11.14 (18%) usr   0.33 (22%) sys  12.24 (18%) wall 
141300 kB (12%) ggc
 predictive commoning  :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.09 ( 0%) wall   
2696 kB ( 0%) ggc
 tree loop init        :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
1220 kB ( 0%) ggc
 tree loop fini        :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
   0 kB ( 0%) ggc
 tree copy headers     :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
1652 kB ( 0%) ggc
 tree SSA uncprop      :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
   0 kB ( 0%) ggc
 tree rename SSA copies:   0.03 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
   0 kB ( 0%) ggc
 dominance frontiers   :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall   
   0 kB ( 0%) ggc
 dominance computation :   0.28 ( 0%) usr   0.00 ( 0%) sys   0.32 ( 0%) wall   
   0 kB ( 0%) ggc
 control dependences   :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
   0 kB ( 0%) ggc
 out of ssa            :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.13 ( 0%) wall   
 130 kB ( 0%) ggc
 expand vars           :   0.09 ( 0%) usr   0.01 ( 1%) sys   0.10 ( 0%) wall   
9013 kB ( 1%) ggc
 expand                :   0.40 ( 1%) usr   0.01 ( 1%) sys   0.52 ( 1%) wall  
57975 kB ( 5%) ggc
 post expand cleanups  :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall   
3355 kB ( 0%) ggc
 lower subreg          :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%) wall   
   0 kB ( 0%) ggc
 forward prop          :   0.33 ( 1%) usr   0.00 ( 0%) sys   0.33 ( 0%) wall  
11129 kB ( 1%) ggc
 CSE                   :   0.97 ( 2%) usr   0.01 ( 1%) sys   0.99 ( 1%) wall   
 207 kB ( 0%) ggc
 dead code elimination :   0.26 ( 0%) usr   0.00 ( 0%) sys   0.32 ( 0%) wall   
   0 kB ( 0%) ggc
 dead store elim1      :   0.49 ( 1%) usr   0.00 ( 0%) sys   0.45 ( 1%) wall  
11519 kB ( 1%) ggc
 dead store elim2      :   0.41 ( 1%) usr   0.00 ( 0%) sys   0.46 ( 1%) wall  
13060 kB ( 1%) ggc
 loop analysis         :   0.03 ( 0%) usr   0.01 ( 1%) sys   0.02 ( 0%) wall   
1626 kB ( 0%) ggc
 loop invariant motion :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%) wall   
 505 kB ( 0%) ggc
 loop unswitching      :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.07 ( 0%) wall   
   0 kB ( 0%) ggc
 loop unrolling        :   1.59 ( 3%) usr   0.02 ( 1%) sys   1.64 ( 2%) wall 
102158 kB ( 9%) ggc
 CPROP                 :   0.69 ( 1%) usr   0.02 ( 1%) sys   0.77 ( 1%) wall  
13208 kB ( 1%) ggc
 PRE                   :   0.58 ( 1%) usr   0.00 ( 0%) sys   0.58 ( 1%) wall   
1030 kB ( 0%) ggc
 web                   :   0.20 ( 0%) usr   0.00 ( 0%) sys   0.15 ( 0%) wall   
2961 kB ( 0%) ggc
 CSE 2                 :   0.87 ( 1%) usr   0.01 ( 1%) sys   1.08 ( 2%) wall   
1246 kB ( 0%) ggc
 branch prediction     :   0.12 ( 0%) usr   0.02 ( 1%) sys   0.14 ( 0%) wall   
6859 kB ( 1%) ggc
 combiner              :   1.75 ( 3%) usr   0.03 ( 2%) sys   1.70 ( 3%) wall  
39971 kB ( 3%) ggc
 if-conversion         :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall   
1398 kB ( 0%) ggc
 regmove               :   0.26 ( 0%) usr   0.00 ( 0%) sys   0.25 ( 0%) wall   
   0 kB ( 0%) ggc
 integrated RA         :   3.24 ( 5%) usr   0.01 ( 1%) sys   3.39 ( 5%) wall  
24873 kB ( 2%) ggc
 reload                :   1.72 ( 3%) usr   0.00 ( 0%) sys   1.72 ( 3%) wall   
8401 kB ( 1%) ggc
 reload CSE regs       :   1.93 ( 3%) usr   0.00 ( 0%) sys   1.75 ( 3%) wall  
19943 kB ( 2%) ggc
 load CSE after reload :   0.14 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%) wall   
 487 kB ( 0%) ggc
 zee                   :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
  31 kB ( 0%) ggc
 thread pro- & epilogue:   0.06 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall   
3614 kB ( 0%) ggc
 combine stack adjustments:   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
      0 kB ( 0%) ggc
 peephole 2            :   0.07 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%) wall   
1907 kB ( 0%) ggc
 rename registers      :   0.47 ( 1%) usr   0.00 ( 0%) sys   0.49 ( 1%) wall   
2169 kB ( 0%) ggc
 hard reg cprop        :   0.45 ( 1%) usr   0.00 ( 0%) sys   0.45 ( 1%) wall   
  22 kB ( 0%) ggc
 scheduling 2          :   4.47 ( 7%) usr   0.01 ( 1%) sys   4.35 ( 6%) wall   
1114 kB ( 0%) ggc
 machine dep reorg     :   0.35 ( 1%) usr   0.00 ( 0%) sys   0.39 ( 1%) wall   
  22 kB ( 0%) ggc
 reorder blocks        :   0.27 ( 0%) usr   0.00 ( 0%) sys   0.26 ( 0%) wall   
3129 kB ( 0%) ggc
 final                 :   0.82 ( 1%) usr   0.03 ( 2%) sys   0.83 ( 1%) wall   
8473 kB ( 1%) ggc
 symout                :   0.33 ( 1%) usr   0.00 ( 0%) sys   0.33 ( 0%) wall  
53120 kB ( 5%) ggc
 variable tracking     :   1.34 ( 2%) usr   0.01 ( 1%) sys   1.42 ( 2%) wall  
37182 kB ( 3%) ggc
 var-tracking dataflow :   2.11 ( 3%) usr   0.00 ( 0%) sys   2.28 ( 3%) wall   
   0 kB ( 0%) ggc
 var-tracking emit     :   2.01 ( 3%) usr   0.00 ( 0%) sys   1.89 ( 3%) wall  
18854 kB ( 2%) ggc
 rest of compilation   :   3.44 ( 5%) usr   0.33 (22%) sys   3.46 ( 5%) wall   
8050 kB ( 1%) ggc
 remove unused locals  :   0.47 ( 1%) usr   0.01 ( 1%) sys   0.62 ( 1%) wall   
   0 kB ( 0%) ggc
 address taken         :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall   
   0 kB ( 0%) ggc
 unaccounted todo      :   0.98 ( 2%) usr   0.08 ( 5%) sys   1.27 ( 2%) wall   
   8 kB ( 0%) ggc
 repair loop structures:   0.07 ( 0%) usr   0.01 ( 1%) sys   0.07 ( 0%) wall   
4127 kB ( 0%) ggc
 TOTAL                 :  63.40             1.53            67.47           
1152381 kB

Reply via email to