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]

Re: big slowdown in egcs-1.1.2->gcc-2.95 on alpha


> > ~8% off my testcase.  
> 
> Do you have any profile data for that?

I have some data for compiling a large, integer, file with

-O2 -mcpu=ev6 -fno-math-errno -fPIC

on the alpha.  However (1) I don't know how characteristic the program
is to others, and (2) I don't usually compile this file with -O2.  So
if you find this data useful, great, otherwise, ignore it.

The times for each pass are:

popov-53% /export/u10/egcs-prof/lib/gcc-lib/alphaev6-unknown-linux-gnu/2.96/cc1 -mcpu=ev6 -fno-math-errno -mieee -fPIC -O2 _meroon.i
__copysignf copysignf __copysign copysign __fabsf fabsf __fabs fabs __floorf __floor floorf floor __fdimf fdimf __fdim fdim ___H__20___meroon {GC 160095k -> 33708k in 0.929} {GC 45097k -> 33687k in 0.940} {GC 47074k -> 37662k in 1.075} {GC 50287k -> 35884k in 1.022} {GC 54712k -> 40701k in 1.212} {GC 64544k -> 42767k in 1.267} ___init_proc {GC 86293k -> 3001k in 0.069} {GC 6054k -> 3060k in 0.145} ____20___meroon
time in parse: 21.162608 (-4%)
time in integration: 0.000000 (-0%)
time in jump: 516.838848 (-101%)
time in cse: 15.099696 (-3%)
time in gcse: -1645.-331280 (323%)
time in loop: 1.242448 (-0%)
time in cse2: 13.482464 (-3%)
time in branch-prob: 0.000000 (-0%)
time in flow: 8.959680 (-2%)
time in combine: 11.807648 (-2%)
time in regmove: 3.503840 (-1%)
time in sched: 356.688960 (-70%)
time in local-alloc: 5.562224 (-1%)
time in global-alloc: 34.060448 (-7%)
time in flow2: 8.440448 (-2%)
time in peephole2: 0.180560 (-0%)
time in sched2: 111.030736 (-22%)
time in shorten-branch: 0.581696 (-0%)
time in final: 3.423808 (-1%)
time in varconst: 0.001952 (-0%)
time in symout: 0.000000 (-0%)
time in dump: 0.000000 (-0%)
time in gc: 6.659248 (-1%)

So it seems that the int's used to contain the times in toplev.c don't
quite cut it here--change to unsigned longs (gains 1 bit on 32bit machines,
32 bits on the alpha) or doubles?

The top times in the profile file are:

Each sample counts as 0.000976562 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
 24.79    435.90   435.90   205024     0.00     0.00  pre_expr_reaches_here_p_work
 21.63    816.15   380.25 812491634     0.00     0.00  expr_killed_p
  8.85    971.72   155.58        1   155.58   535.82  compute_ae_kill
  7.68   1106.72   135.00    37475     0.00     0.00  compute_block_backward_dependences
  6.31   1217.65   110.93 122524058     0.00     0.00  rtx_renumbered_equal_p
  5.00   1305.47    87.82    97294     0.00     0.00  compute_transp
  4.24   1380.02    74.54 67176104     0.00     0.00  find_cross_jump
  3.67   1444.46    64.44        3    21.48    33.16  compute_hash_table
  2.39   1486.51    42.05  9018524     0.00     0.00  sbitmap_union_of_diff
  1.57   1514.14    27.63    83378     0.00     0.00  insert_expr_in_table
  1.33   1537.50    23.36   223375     0.00     0.00  record_one_set
  1.04   1555.83    18.33    74953     0.00     0.00  count_or_remove_death_notes
  0.92   1571.98    16.16       15     1.08    14.85  jump_optimize_1
  0.70   1584.28    12.30   389447     0.00     0.00  sbitmap_a_and_b
  0.69   1596.49    12.21   389436     0.00     0.00  sbitmap_a_or_b

Something seems the matter with the data for pre_expr_reaches_here_p_work.

Brad


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