This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Timing information for CFG manipulations
- To: jh at suse dot cz (Jan Hubicka)
- Subject: Re: Timing information for CFG manipulations
- From: Brad Lucier <lucier at math dot purdue dot edu>
- Date: Tue, 16 Oct 2001 14:39:38 -0500 (EST)
- Cc: lucier at math dot purdue dot edu (Brad Lucier), gcc-patches at gcc dot gnu dot org, rth at cygnus dot com, jh at suse dot cz, gcc at gcc dot gnu dot org
>
>
> Hi,
> this patch should track down the second problem:
>
> > flow 2 : 267.66 (34%) usr 251.44 (98%) sys 519.08 (49%) wall
> > 32.36 602.16 253.66 9556 26.54 26.54 sbitmap_vector_alloc
>
> It makes find_sub_basic_blocks to operate at bitmap of blocks, instead of just
> one and thus it avoids multiple initializations of edge cache structure.
>
> The possible problem is that I now need to benerate bitmap when calling from
> recog.c. I hope it won't cause perofrmance regression as the bitmap is
> relativly small (compared to edge cache). If it will, I can use bitmap,
> instead of sbitmap, that will add some overhead at split_all_insns side.
>
> I don't have time to finish bootstrap, but the patch appears to work.
> OK assuming the bootstrapping/regtesting i386 passes fluently?
Bootstrapped and regtested on i686-pc-linux-gnu, flow2 is now
flow 2 : 33.92 (16%) usr 0.10 ( 2%) sys 34.00 (16%) wall
So, two home runs in one day! (Two goals in one day? ...)
Here are the new timing details:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
16.66 29.10 29.10 72698858 0.00 0.00 bitmap_operation
12.43 50.81 21.71 13 1670.00 4145.64 calculate_global_regs_live
9.86 68.04 17.23 9305997 0.00 0.00 cached_make_edge
5.57 77.77 9.73 67331 0.14 0.38 try_crossjump_bb
4.03 84.81 7.04 htab_traverse
2.99 90.03 5.22 27855 0.19 0.19 sbitmap_intersection_of_su
ccs
Brad