This is an archive of the discontinued LLVM Phabricator instance.

[ELF/AArch64] Add GD to IE TLS relax optimization
AbandonedPublic

Authored by zatrazz on Mar 21 2016, 2:18 PM.

Details

Reviewers
ruiu
rafael
Summary

This patch add the TLS Global-Dynamic to Initial-Exec TLS optimization
for AArch64. Similar of GD to LE, the idea is to optimize TLS access
to global symbols that can preempted by emitting a GOT entry and
a dynamic relocation (R_AARCH64_TLS_TPREL64).

This patch is based upon http://reviews.llvm.org/D18331

Diff Detail

Event Timeline

zatrazz updated this revision to Diff 51228.Mar 21 2016, 2:18 PM
zatrazz retitled this revision from to [ELF/AArch64] Add GD to IE TLS relax optimization.
zatrazz updated this object.
zatrazz added reviewers: ruiu, rafael.
zatrazz set the repository for this revision to rL LLVM.
zatrazz added a project: lld.
zatrazz added subscribers: emaste, grimar, rengolin, llvm-commits.
yinma added a subscriber: yinma.Mar 21 2016, 3:07 PM

My review will not be very helpfull here. Just minors.

ELF/Target.cpp
1646

lowercase please:
llvm_unreachable("unsupported relocation for TLS GD to IE relaxation");

test/ELF/aarch64-tls-gdie.s
19

I think you want to use CHECK-NEXT below

Thanks for the review.

ELF/Target.cpp
1646

I will change that.

test/ELF/aarch64-tls-gdie.s
19

I will change that.

zatrazz updated this revision to Diff 51283.Mar 22 2016, 7:22 AM
zatrazz removed rL LLVM as the repository for this revision.

Updated patch based on previous comment.

This needs to be rebased again.

zatrazz updated this revision to Diff 51652.Mar 25 2016, 10:20 AM

Rebased on changes on previous comments.

zatrazz updated this revision to Diff 51656.Mar 25 2016, 10:27 AM

I forgot to add a fix on AArch64TargetInfo::needsGot and
AArch64TargetInfo::refersToGotEntry in last patch. This one is the
correct update.

zatrazz updated this revision to Diff 52260.Mar 31 2016, 12:26 PM

Rebased against master and ping.

zatrazz abandoned this revision.Apr 11 2016, 5:35 AM