Store estimated istrances in compressed_size
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 2 Feb 2016 16:14:43 +0000 (08:14 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 2 Feb 2016 16:20:37 +0000 (08:20 -0800)
commit4a539596f5d54d3116c5fdebd8be56998757288b
treeb6d5a1c333209c50cc72f495793a4259a544b0c5
parent46d70d04a422dcd3a3d985a0ffbef2d6973500b1
Store estimated istrances in compressed_size

elf_x86_64_convert_load is very time consuming since it is called on
each input section and has a loop over input text sections to estimate
the branch distrance.  We can store the estimated distrances in the
compressed_size field of the output section, which is only used to
decompress the compressed input section.

Before the patch, linking clang 3.9 takes 52 seconds.  After the patch,
it only takes 2.5 seconds.

PR ld/19542
* elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
distrances in the compressed_size field of the output section.
bfd/ChangeLog
bfd/elf64-x86-64.c