[AArch64] Remove redundant tls relaxation check in elfNN_aarch64_final_link_relocate
Jiong Wang
jiong.wang@foss.arm.com
Mon May 9 13:43:00 GMT 2016
The current code flow for applying relocation is:
elfNN_aarch64_relocate_section
|
v
elfNN_aarch64_final_link_relocate
In elfNN_aarch64_relocate_section, before calling
elfNN_aarch64_final_link_relocate, we have called aarch64_tls_transition
to get relaxed TLS relocation types
relaxed_bfd_r_type =
aarch64_tls_transition (input_bfd, info, r_type, h, r_symndx);
What passed to elfNN_aarch64_final_link_relocate is expected to be the
relaxed TLS reloc types.
elfNN_aarch64_final_link_relocate should not do further tls type transition,
otherwise there will be inconsistent between elfNN_aarch64_relocate_section
and elfNN_aarch64_final_link_relocate.
This redundant check also unnecessarily slowed down AArch64 linking speed. After
this patch, it will be 1.5% ~ 3.5% faster when linking several huge programs from my
tests.
No regression on AArch64 native ld check.
OK for master?
2016-05-09 Jiong Wang <jiong.wang@arm.com>
bfd/
* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant
aarch64_tls_transition check.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: final.patch
Type: text/x-patch
Size: 1522 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20160509/d7d4e094/attachment.bin>
More information about the Binutils
mailing list