[llvm-dev] [PPC] Linker fails on -fstack-protector

Tim Shen via llvm-dev
Tue, 23 Feb 2016 00:26:54 -0000

On Mon, Feb 22, 2016 at 3:32 PM Joerg Sonnenberger via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> On Mon, Jan 25, 2016 at 07:57:43PM +0000, Tim Shen via llvm-dev wrote:
> > A cleaner solution could be adding an IR intrinsic
llvm.get_tcb_address()
> > and hard code the offset of stack_guard member, since they aren't
> supposed
> > to change.
>
> It would also be inefficient on architectures that can directly access
> TLS variables. I.e. on x86, it is effectively a statically allocated TLS
> variable with fixed offset. That can be accessed by a single load --
> whereas introducing get_tcb_address first would require a second load.


Guess I used the wrong intrinsic name - it should be
llvm.global_tls_address(), and it should be directly lowered to
ISD::GlobalTLSAddress, which is currently used by both x86 and ppc, and
ultimately it's referencing fs register on x86_64 and r13 on ppc64le.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20160223/6fb9314a/attachment.html>