This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] Speed up constant propagation [patch]


On 16 Jun 2003, Diego Novillo wrote:

>
> This patch speeds up CCP times by not simulating statements that are
> either not interesting for constant propagation or statements that in a
> previous pass have been deemed VARYING.

> Richard, this patch sped up CCP in FieldCentering.cmpl.ii by a factor of
> 12, reducing compile time by about 22 secs.  Could you try compiling the
> rest of POOMA to see whether this happens across the board?  I've gotten
> POOMA's sources but I still haven't gotten around to
> configuring/compiling it.

The worst case test went down from 38 minutes to 4:15 (mainline is 3:23)!
Nice work! Time report follows (-fno-exceptions -O2 -march=athlon
-funroll-loops).

Richard.


Execution times (seconds)
 garbage collection    :   4.50 ( 2%) usr   0.20 ( 5%) sys   4.72 ( 2%)
wall
 cfg construction      :   0.51 ( 0%) usr   0.00 ( 0%) sys   0.41 ( 0%)
wall
 cfg cleanup           :   0.85 ( 0%) usr   0.02 ( 0%) sys   0.86 ( 0%)
wall
 trivially dead code   :   1.32 ( 1%) usr   0.00 ( 0%) sys   1.37 ( 1%)
wall
 life analysis         :   1.87 ( 1%) usr   0.02 ( 0%) sys   1.88 ( 1%)
wall
 life info update      :   1.13 ( 0%) usr   0.00 ( 0%) sys   0.96 ( 0%)
wall
 alias analysis        :   3.73 ( 1%) usr   0.44 (10%) sys   4.40 ( 2%)
wall
 register scan         :   0.69 ( 0%) usr   0.00 ( 0%) sys   0.61 ( 0%)
wall
 rebuild jump labels   :   0.43 ( 0%) usr   0.00 ( 0%) sys   0.48 ( 0%)
wall
 preprocessing         :   0.50 ( 0%) usr   0.20 ( 5%) sys   0.88 ( 0%)
wall
 parser                :   7.77 ( 3%) usr   0.59 (14%) sys   8.72 ( 3%)
wall
 name lookup           :   6.49 ( 3%) usr   0.63 (15%) sys   6.73 ( 3%)
wall
 integration           :   6.12 ( 2%) usr   0.11 ( 3%) sys   6.53 ( 3%)
wall
 tree gimplify         :   1.46 ( 1%) usr   0.01 ( 0%) sys   1.37 ( 1%)
wall
 tree CFG construction :   2.96 ( 1%) usr   0.10 ( 2%) sys   3.17 ( 1%)
wall
 tree CFG cleanup      :   0.44 ( 0%) usr   0.00 ( 0%) sys   0.48 ( 0%)
wall
 tree alias analysis   :  22.45 ( 9%) usr   0.11 ( 3%) sys  22.44 ( 9%)
wall
 tree PHI insertion    :  83.14 (33%) usr   0.39 ( 9%) sys  83.50 (33%)
wall
 tree SSA rewrite      :   8.73 ( 3%) usr   0.07 ( 2%) sys   8.93 ( 3%)
wall
 tree SSA other        :   2.77 ( 1%) usr   0.08 ( 2%) sys   2.87 ( 1%)
wall
 tree SSA to normal    :  12.39 ( 5%) usr   0.12 ( 3%) sys  12.44 ( 5%)
wall
 tree CCP              :  17.76 ( 7%) usr   0.13 ( 3%) sys  17.88 ( 7%)
wall
 tree COPYPROP         :   1.07 ( 0%) usr   0.00 ( 0%) sys   1.05 ( 0%)
wall
 tree DCE              :   4.41 ( 2%) usr   0.11 ( 3%) sys   4.57 ( 2%)
wall
 dominance frontiers   :   0.15 ( 0%) usr   0.01 ( 0%) sys   0.21 ( 0%)
wall
 expand                :   4.28 ( 2%) usr   0.16 ( 4%) sys   4.31 ( 2%)
wall
 varconst              :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.06 ( 0%)
wall
 jump                  :   1.24 ( 0%) usr   0.07 ( 2%) sys   1.34 ( 1%)
wall
 CSE                   :   5.55 ( 2%) usr   0.01 ( 0%) sys   5.48 ( 2%)
wall
 global CSE            :  22.00 ( 9%) usr   0.06 ( 1%) sys  22.07 ( 9%)
wall
 loop analysis         :   8.73 ( 3%) usr   0.42 (10%) sys   9.22 ( 4%)
wall
 bypass jumps          :   0.68 ( 0%) usr   0.02 ( 0%) sys   0.73 ( 0%)
wall
 CSE 2                 :   1.82 ( 1%) usr   0.00 ( 0%) sys   1.66 ( 1%)
wall
 branch prediction     :   1.90 ( 1%) usr   0.00 ( 0%) sys   1.84 ( 1%)
wall
 flow analysis         :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%)
wall
 combiner              :   1.01 ( 0%) usr   0.00 ( 0%) sys   1.05 ( 0%)
wall
 if-conversion         :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.08 ( 0%)
wall
 regmove               :   0.31 ( 0%) usr   0.00 ( 0%) sys   0.30 ( 0%)
wall
 mode switching        :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%)
wall
 local alloc           :   1.56 ( 1%) usr   0.08 ( 2%) sys   1.74 ( 1%)
wall
 global alloc          :   2.45 ( 1%) usr   0.02 ( 0%) sys   2.38 ( 1%)
wall
 reload CSE regs       :   0.89 ( 0%) usr   0.01 ( 0%) sys   0.92 ( 0%)
wall
 flow 2                :   0.18 ( 0%) usr   0.00 ( 0%) sys   0.19 ( 0%)
wall
 if-conversion 2       :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%)
wall
 peephole 2            :   0.11 ( 0%) usr   0.00 ( 0%) sys   0.14 ( 0%)
wall
 rename registers      :   0.59 ( 0%) usr   0.00 ( 0%) sys   0.48 ( 0%)
wall
 scheduling 2          :   1.29 ( 1%) usr   0.07 ( 2%) sys   1.37 ( 1%)
wall
 reorder blocks        :   0.08 ( 0%) usr   0.00 ( 0%) sys   0.11 ( 0%)
wall
 shorten branches      :   0.30 ( 0%) usr   0.04 ( 1%) sys   0.37 ( 0%)
wall
 reg stack             :   0.17 ( 0%) usr   0.01 ( 0%) sys   0.16 ( 0%)
wall
 final                 :   0.32 ( 0%) usr   0.02 ( 0%) sys   0.28 ( 0%)
wall
 rest of compilation   :   1.36 ( 1%) usr   0.00 ( 0%) sys   1.45 ( 1%)
wall
 TOTAL                 : 250.71             4.34           255.26



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]