[Bug binutils/11843] ld long link times due to compute_bucket_count() choosing hash table size

2010-07-30 Thread hjl dot tools at gmail dot com

--- Additional Comments From hjl dot tools at gmail dot com  2010-07-30 
22:35 ---
(In reply to comment #4)
> Here is a conservative patch.
> 
> Index: bfd/elflink.c
> ===
> RCS file: /cvs/src/src/bfd/elflink.c,v
> retrieving revision 1.372
> diff -u -r1.372 elflink.c
> --- bfd/elflink.c   14 Apr 2010 08:29:33 -  1.372
> +++ bfd/elflink.c   28 Jul 2010 22:21:53 -
> @@ -5374,6 +5374,7 @@
>const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
>unsigned long int *counts;
>bfd_size_type amt;
> +  unsigned int no_improvement_count = 0;
>  
>/* Possible optimization parameters: if we have NSYMS symbols we say
>  that the hashing table must at least have NSYMS/4 and at most
> @@ -5458,7 +5459,10 @@
> {
>   best_chlen = max;
>   best_size = i;
> +  no_improvement_count = 0;
> }
> +  else if (++no_improvement_count == 100)
> +break;
> }
>  
>free (counts);
> 

It looks good to me. Please post it to binutils mailing list. Thanks.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11843

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.

___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils


[Bug binutils/11843] ld long link times due to compute_bucket_count() choosing hash table size

2010-07-30 Thread hjl dot tools at gmail dot com

--- Additional Comments From hjl dot tools at gmail dot com  2010-07-30 
23:11 ---
(In reply to comment #5)
> (In reply to comment #4)
> > Here is a conservative patch.
> > 
> > Index: bfd/elflink.c
> > ===
> > RCS file: /cvs/src/src/bfd/elflink.c,v
> > retrieving revision 1.372
> > diff -u -r1.372 elflink.c
> > --- bfd/elflink.c   14 Apr 2010 08:29:33 -  1.372
> > +++ bfd/elflink.c   28 Jul 2010 22:21:53 -
> > @@ -5374,6 +5374,7 @@
> >const struct elf_backend_data *bed = get_elf_backend_data (dynobj);
> >unsigned long int *counts;
> >bfd_size_type amt;
> > +  unsigned int no_improvement_count = 0;
> >  
> >/* Possible optimization parameters: if we have NSYMS symbols we say
> >  that the hashing table must at least have NSYMS/4 and at most
> > @@ -5458,7 +5459,10 @@
> > {
> >   best_chlen = max;
> >   best_size = i;
> > +  no_improvement_count = 0;
> > }
> > +  else if (++no_improvement_count == 100)
> > +break;
> > }
> >  
> >free (counts);
> > 
> 
> It looks good to me. Please post it to binutils mailing list. Thanks.

My second though. This patch gives up way too early.

-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=11843

--- You are receiving this mail because: ---
You are on the CC list for the bug, or are watching someone who is.

___
bug-binutils mailing list
bug-binutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-binutils