diff options
author | Alan Modra <amodra@gmail.com> | 2015-11-09 15:03:29 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2015-11-10 17:14:41 +1030 |
commit | c316a17c40e44e8798b34ff84130904f2e7a53de (patch) | |
tree | c63c9eb998140c10abb05c3533f64dc99b6b9c88 /bfd/ChangeLog | |
parent | 1057567ea711d80f9937653179b06507827d5819 (diff) | |
download | gdb-c316a17c40e44e8798b34ff84130904f2e7a53de.zip gdb-c316a17c40e44e8798b34ff84130904f2e7a53de.tar.gz gdb-c316a17c40e44e8798b34ff84130904f2e7a53de.tar.bz2 |
Fix performance regression due to ld -r memmove
The idea here is that instead of using memmove to shuffle the relocs
array every time one is deleted, to add a "wrel" pointer and copy from
rel[0] to wrel[0] as we go.
* elf64-ppc.c (ppc64_elf_relocate_section): Use read and write
pointers to reloc array, rather than memmove when deleting a
reloc. Don't use RELOC_AGAINST_DISCARDED_SECTION. Adjust
reloc counts at end of loop.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 60d13b9..d46bbe0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2015-11-10 Alan Modra <amodra@gmail.com> + + * elf64-ppc.c (ppc64_elf_relocate_section): Use read and write + pointers to reloc array, rather than memmove when deleting a + reloc. Don't use RELOC_AGAINST_DISCARDED_SECTION. Adjust + reloc counts at end of loop. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. + 2015-11-09 Dominik Vogt <vogt@linux.vnet.ibm.com> * elf64-ppc.c (ppc64_elf_size_stubs, ppc64_elf_build_stubs): Fix left |