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] |
Hi, I have implemented an arange set based on the splay tree in libiberty. The arange set replaces some uses of the singly linked list of aranges in dwarf2.c, which is extremely inefficient for big binaries. To test the arange set, I also added a testsuite directory inside bfd and put a test program there. The test is runnable using make check, just like tests in other component of binutils. The test program uses targeted and randomized tests to exercise various parts of the arange test implementation. This patch brings down the run time of "nm -l -C -S -p" of a 230M+ binaries from over 5 minutes to less than 3 minutes on my machine and it does not change the output of nm. I also ran a profiled run and found that now about 74% of time is inside elf_find_function, possibly inside a loop. So further speed up is possible but I currently do not have time to work on that. Could someone please review and apply this patch? Thanks. -Doug
Attachment:
ChangeList-arange-set.txt
Description: Text document
Attachment:
diffs-arange-set.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |