This patch fix the TLS relax optimization when transforming Initial-Exec
to Local-Exec for local symbols (which can not be preempted).
Details
Diff Detail
Event Timeline
ELF/Target.cpp | ||
---|---|---|
1474 | What is this change for? |
test/ELF/aarch64-tls-iele.s | ||
---|---|---|
14 | Please align accordinly, remove space after ':' 11000: 00 00 a0 d2 movz x0, #0, lsl #16 11004: 80 02 80 f2 movk x0, #0x14 11008: 00 00 a0 d2 movz x0, #0, lsl #16 Second is that you probably want to use "CHECK-NEXT": # CHECK: 11000: 00 00 a0 d2 movz x0, #0, lsl #16 # CHECK-NEXT: 11004: 80 02 80 f2 movk x0, #0x14 # CHECK-NEXT: 11008: 00 00 a0 d2 movz x0, #0, lsl #16 And the last is that this testcase contains different spacing style: |
ELF/Target.cpp | ||
---|---|---|
1474 | The logic is wrong for local symbols, where S is nullptr. At ELF/InputSection.cpp:219, if the Body is nullptr then it uses getLocalRelTarget. Also the change on 'AArch64TargetInfo::needsGot' is to make the same code uses getVA instead of getGotVA. | |
test/ELF/aarch64-tls-iele.s | ||
14 | Yes, the spacing is weird, I will fix it. |
What is this change for?