Displaying 7 results from an estimated 7 matches for "globaltlsaddress".
2016 Feb 23
2
[PPC] Linker fails on -fstack-protector
...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>
2016 Feb 23
2
[PPC] Linker fails on -fstack-protector
...register intrinsic in ppc's getStackCookieLocation(). This is the
way that requires least change; or
3) Create a generic ISD::GET_GLOBAL_TLS_ADDRESS and intrinsic
llvm.get_global_tls_address(), and lower them to target specific ISD. No
target specific intrinsic is needed. I was wrong about
ISD::GlobalTlsAddress, since it requires a GlobalValue object.
I prefer 3), since it's less hacky than 2) and less repetitive than 1).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160223/4d642a28/attachment.html>
2007 Jul 11
2
[LLVMdev] thread_local
Hi,
This weekend, I've noticed that GlobalVariable's could be declared as
thread-local in LLVM 2.0. However, when using it on a small example
(OSX), I got the following error:
=========
Cannot yet select: 0x56059f0: i32 = GlobalTLSAddress <i32* @a> 0
Abort trap
=========
This is the example code:
=========
; ModuleID = 'test.o'
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-
i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0
:64"
target triple = "powerpc-apple-darwin8.9.0...
2007 Oct 18
1
[LLVMdev] Thread-local storage on x86-64
Hi,
is TLS already supposed to work on x86-64? I get the following error:
Cannot yet select: 0xec9330: i64 = GlobalTLSAddress <%struct.stm_tx_t**
@thread_tx> 0
llc((anonymous namespace)::PrintStackTrace()+0x15)[0xa10495]
llc((anonymous namespace)::SignalHandler(int)+0x216)[0xa10826]
/lib/libc.so.6[0x2b6da40a5ca0]
/lib/libc.so.6(gsignal+0x35)[0x2b6da40a5c45]
/lib/libc.so.6(abort+0x110)[0x2b6da40a75c0]
llc[0x73c0a5]...
2016 Feb 22
4
[PPC] Linker fails on -fstack-protector
I found a bit weird to use address space for this, since the offset of
getting stack_guard in TCB is, unfortunately, negative:
https://github.com/gcc-mirror/gcc/blob/master/gcc/config/rs6000/linux64.h#L610
In my understanding an address space is referring to a segment register
(-on powerpc 32bit; or SLB entry on powerpc 64bit?) with a non-negative
offset value, so that it's actually accessing
2016 Jan 25
5
[PPC] Linker fails on -fstack-protector
When -fstack-protector is turned on, linker fails to find the symbol
"__stack_chk_guard"
because at least for powerpc64le, glibc doesn't provide this symbol.
Instead, they put the stack guard into TCB.
x86 fixed this issue by injecting a special address space (which is later
translated to TCB register access) and hard code the offset of stack_guard,
but I don't see a easy way to
2013 Sep 25
1
[LLVMdev] arm64 / iOS support
...AG);
case ISD::BR_CC: return LowerBR_CC(Op, DAG);
- case ISD::GlobalAddress: return LowerGlobalAddressELF(Op, DAG);
+ case ISD::GlobalAddress: return Subtarget->isTargetDarwin() ? LowerGlobalAddressDarwin(Op, DAG) :
+ LowerGlobalAddressELF(Op, DAG);
case ISD::GlobalTLSAddress: return LowerGlobalTLSAddress(Op, DAG);
case ISD::JumpTable: return LowerJumpTable(Op, DAG);
case ISD::SELECT: return LowerSELECT(Op, DAG);
diff --git a/lib/Target/AArch64/AArch64ISelLowering.h b/lib/Target/AArch64/AArch64ISelLowering.h
index 7c7d038..ee31a10 100644
--- a/lib/Target/AArch64/A...