On 10/08/2012 01:14 PM, Steven Bosscher wrote:
Hello,

This patch makes lra_constraint_insn_stack_bitmap an sbitmap. This
reduces compile time by another minute or so on gcc17 for the test
case of PR54146, and I think it's a general improvement also for less
extreme code. For cc1-i files the compile time change tends to be a
little less but that may just be noise.

Bootstrapped&tested on x86_64-unknown-linux-gnu. OK for lra-branch?
I am not a fan of sbitmap for regular use. This patch definitely helps for this particular test. But it might hurt performance for small functions because

You need to allocate sbitmap (bitmap frequently uses already allocated pool of bitmap elements), sometimes reallocate it (because new insns are added), make it empty (zeroing), and it may hurt locality when the corresponding set is partially sparsed (but not so sparsed as in this case, where each bit practically requires a new bitmap element).

So I checked it on big file with > hundred functionson Intel machine and got

before a part of the patch implementing the insn stack as sbitmap
real=243.40 user=241.61 system=1.00

after the part of the patch:
real=244.89 user=243.02 system=0.96

So I guess we need a combination of methods (based on sbitmap and bitmap) or 
some another method could work in both cases.  I think it can wait the next 
stage.

(This is the combined patch of all changes in my check-out of the
lra-branch. The lra.c and lra-constraints.c bits are new, the rest was
posted previously and is awaiting review also.)


Reply via email to