This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Objcopy: use a hash table for symbol renaming


On Thu, Jan 14, 2010 at 5:56 AM, Eirik Byrkjeflot Anonsen
<eirik@opera.com> wrote:
> Eirik Byrkjeflot Anonsen <eirik@opera.com> writes:
>
>> Nick Clifton <nickc@redhat.com> writes:
>>
>>> Hi Eirik,
>>>
>>>> The attached patch replaces the linked list with a hash table
>>>> implementation.
>>>
>>> Thanks for submitting this patch. ?It is a good idea, but as
>>> Hans-Peter has pointed out it would be better to make use of the
>>> hashing functions that are already implemented in the libiberty
>>> library, rather than creating your own.
>>
>> Fully agreed. ?I just didn't know that libiberty has a hash table
>> implementation. ?I didn't even know that I was allowed to use libiberty
>> in binutils. ?In fact, you could say I know precious little about
>> libiberty :)
>
> Ok, I finally got around to spending some time trying to figure out how
> libiberty's hash tables work. ?I found the documentation to be somewhat
> thin, so I ended up implementing the symbol redefinition hash table by
> the time-honored coding style of "cut and paste". ?(Though the resulting
> code seems sensible. ?And it seems to do the right thing.)
>
> (Astonishingly, this version seems to be about 10% slower than mine.
> "Astonishingly" because my version was optimized for correctness and
> readability, not for performance. ?Still, it's not a performance
> difference that matters significantly. ?The benefits of using a standard
> implementation of hash tables far outweighs that minor performance hit.)
>

Can you improve hash table implementation in libiberty to get back that 10%?

Thanks.

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]