This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Patch for bitmap.h (was Re: Out-of-sight compile times for calculate_loop_depth)
- To: lucier at math dot purdue dot edu, m dot hayes at elec dot canterbury dot ac dot nz
- Subject: Patch for bitmap.h (was Re: Out-of-sight compile times for calculate_loop_depth)
- From: Brad Lucier <lucier at math dot purdue dot edu>
- Date: Wed, 9 Feb 2000 16:02:07 -0500 (EST)
- Cc: gcc at gcc dot gnu dot org, gcc-patches dot gnu dot org at math dot purdue dot edu
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 {