This is the mail archive of the gcc@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]

Patch for bitmap.h (was Re: Out-of-sight compile times for calculate_loop_depth)


Here's a patch to bitmap.h that cuts a significant amount of time, but
still does not fix the main problem.

With the patch:

  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 43.78     86.35    86.35    59615     1.45     1.45  sbitmap_intersection_of_preds
  6.88     99.92    13.57     6596     2.06     2.06  flow_loop_exits_find
  6.50    112.75    12.83     6596     1.94     1.94  flow_loop_pre_header_find
  2.85    118.37     5.62 10438001     0.00     0.00  rtx_renumbered_equal_p
  2.74    123.77     5.40        8   675.29  4161.37  jump_optimize_1
  2.62    128.94     5.17  9035782     0.00     0.00  find_cross_jump
  2.27    133.42     4.48    25373     0.18     0.18  delete_from_jump_chain
  1.79    136.96     3.54 12537008     0.00     0.00  next_active_insn
  1.48    139.88     2.92    70351     0.04     0.04  make_edge
  1.15    142.14     2.27        1  2268.55 197020.81  yyparse

Without the patch, which changes / and * to shifts, and % to a mask:

  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 53.32    136.89   136.89    59615     2.30     2.30  sbitmap_intersection_of_preds
  6.80    154.34    17.45     6596     2.65     2.65  flow_loop_exits_find
  6.04    169.84    15.50     6596     2.35     2.35  flow_loop_pre_header_find
  2.23    175.56     5.72        8   714.60  4413.22  jump_optimize_1
  2.18    181.15     5.59 10438001     0.00     0.00  rtx_renumbered_equal_p
  2.03    186.36     5.21  9035782     0.00     0.00  find_cross_jump
  1.90    191.24     4.88    25373     0.19     0.19  delete_from_jump_chain
  1.53    195.16     3.92 12537008     0.00     0.00  next_active_insn
  1.27    198.43     3.27    70351     0.05     0.05  make_edge
  0.84    200.59     2.17   147364     0.01     0.01  record_one_conflict
  0.75    202.53     1.93        1  1931.64 256480.41  yyparse


	* sbitmap.h : Make SBITMAP_ELT_BITS unsigned.

*** sbitmap.h	2000/02/09 19:11:49	1.1
--- sbitmap.h	2000/02/09 20:48:33
***************
*** 25,31 ****
     It should be straightforward to convert so for now we keep things simple
     while more important issues are dealt with.  */
  
! #define SBITMAP_ELT_BITS HOST_BITS_PER_WIDE_INT
  #define SBITMAP_ELT_TYPE unsigned HOST_WIDE_INT
  
  typedef struct simple_bitmap_def {
--- 25,31 ----
     It should be straightforward to convert so for now we keep things simple
     while more important issues are dealt with.  */
  
! #define SBITMAP_ELT_BITS ((unsigned) HOST_BITS_PER_WIDE_INT)
  #define SBITMAP_ELT_TYPE unsigned HOST_WIDE_INT
  
  typedef struct simple_bitmap_def {

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