[Bug binutils/11843] ld long link times due to compute_bucket_count() choosing hash table size
--- 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
--- 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