Displaying 20 results from an estimated 600 matches similar to: "[LLVMdev] JIT problem with thread local global variable"
2012 Sep 24
0
[LLVMdev] JIT problem with thread local global variable
Hi,
> I am trying to use LLVM JIT to emit the following codes and execute
> both functions in my program, but
>
> I get segmentation fault, the problem seems to originate from "thread_local"
> global variable.
>
> my LLVM library is 3.1 and platform is x86 32bit , OS : Ubuntu 10.04
try passing -use-mcjit to lli. The old JIT implementation didn't
2012 Jul 04
1
[LLVMdev] About thread_local in 3.0
Hi LLVM,
I am using 3.0, and I have a question about the __thread in c and
thread_local in LLVM IR: O1-O4 and the final linked code behave
differently.
////////////////////////////////////
The following C code is from the LLVM testcase
(SingleSource/UnitTests/Threads/2010-12-08-tls.c)
#include <stdio.h>
__thread int a = 4;
int foo (void)
{
return a;
}
int main (void) {
2007 Apr 11
2
[LLVMdev] ideas for TLS implementation
For everyone understand which code must be emitted to implement TLS, I
will paste the code generated by gcc for a simple function:
__thread int a = 1;
int f(){
return a;
}
gcc teste.c -o teste.s -S -O2 (arm-linux-gnueabi):
.global a
.section .tdata,"awT",%progbits <== special section for
tls symbols
.align 2
.type a, %object
2020 Jan 09
2
Is there some sort of "@llvm.thread_ctors."?
We know that in C++, the constructor of a static member will get called
when the program starts up. I checked the generated IR code and found this
is implemented by defining a __cxx_global_var_init() function and marked it
as section ".text.startup" and assign it to @llvm.global_ctors.
We also know that in C++, the constructor of a static thread_local member
will *not* get called when
2012 Apr 25
5
[LLVMdev] Adding support for explicitly specified TLS models (PR9788)
Hi all,
I would like to hear your thoughts on adding support for extending the
IR to allow for explicitly selecting which model to use for
thread-local storage of a variable.
The motivation is to allow Clang to support the "tls_model" variable
attribute [1], as requested in PR9788.
The idea would be to extend the IR to allow an optional TLS-model
argument to the thread_local
2010 May 13
2
[LLVMdev] Handling of thread_local globals by llc -march=cpp
Hi all,
I've been exploring thread local globals in llvm and as part of this investigation I ran llc -march=cpp over a trivial llvm bc file which uses thread local storage for a global. For some reason llc -march=cpp seems to ignore the thread_local and produce code to create a standard global. Is this expected behaviour, a known limitation, or otherwise?
Thanks in advance.
Details are as
2011 Dec 06
0
[LLVMdev] Implement implicit TLS on Windows - need advice
On Sun, Dec 4, 2011 at 9:18 AM, Kai <kai at redstar.de> wrote:
> Hi!
>
> LLVM currently does not implement the implicit TLS model on Windows. This
> model is easy:
>
> - a thread local variable ends up in the .tls section
> - to access a thread local variable, you have to do
> (1) load pointer to thread local storage from TEB
> On x86_64, this is gs:0x58, on
2009 May 04
1
[LLVMdev] [PATCH] Add support for accessing the FS segment register on X86
Hi,
If I'm writing a JIT, and want to access the TLS variables of the app
containing the JIT, I can't
use thread_local since that only works for variables declared in LLVM IL
and/or managed by
the ExecutionEngine. While this patch allows a JIT to generate the TLS
accesses itself, if
it knows the tls offset of the variable in question.
Zoltan
On Tue, May 5, 2009 at
2009 May 04
0
[LLVMdev] [PATCH] Add support for accessing the FS segment register on X86
Hello,
The preferred way to do TLS is to use the thread_local keyword.
There is x86-64 support for thread_local on ELF; if you need
it for other targets, I recommend looking at adapting it.
Dan
On May 4, 2009, at 2:59 PM, Zoltan Varga wrote:
> Hi,
>
> Here is an updated version of the patch using address space 257.
>
> Zoltan
>
> On Mon, May 4, 2009 at
2017 Nov 16
2
question about xray tls data initialization
I'm learning the xray library and try if it can be built on windows, in
xray_fdr_logging_impl.h
line 152 , comment written as
// Using pthread_once(...) to initialize the thread-local data structures
but at line 175, 183, code written as
thread_local pthread_key_t key;
// Ensure that we only actually ever do the pthread initialization once.
thread_local bool UNUSED Unused = [] {
2013 Aug 02
1
[LLVMdev] replacing GetElementPtrConstantExpr with GetElementPtrInst ... sometimes
Hi
During a pass, the XCore target lowers thread local global variables by turning them into global variable arrays indexed by the (max 8) thread ID.
(see XCoreLowerThreadLocal.cpp)
This works fine for instructions e.g. GetElementPtrInst
But can't be done for constants e.g. GetElementPtrConstantExpr
Thus I would like to replace GetElementPtrConstantExpr with GetElementPtrInst when it is
2017 Feb 08
2
[cfe-dev] lli: LLVM ERROR: Cannot select: X86ISD::WrapperRIP TargetGlobalTLSAddress:i64
What exactly do the compiler flags`-femulated-tls` and `tls-model` do ?
Why does tls-emulation not solve the problem ?
Looking at the generated IR, it seems not to remove thread_local variable
declarations.
What is the reasoning behind that ?
2017-02-07 16:27 GMT+00:00 Gaetano Checinski <gaetano.checinski at gmail.com>:
>
> got a minimal example now:
> extern thread_local
2012 Jun 04
0
[LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
Reviving this thread with a patch!
And some comments inline.
Please take a look and let me know what you think.
- Hans
On Wed, Apr 25, 2012 at 12:39 PM, Hans Wennborg <hans at chromium.org> wrote:
> Hi all,
>
> I would like to hear your thoughts on adding support for extending the
> IR to allow for explicitly selecting which model to use for
> thread-local storage of a
2012 Nov 08
2
[LLVMdev] Bug Report -- Possible optimizer bug with thread_local variables
Hello,
I apologize if this has already been fixed or reported. I believe there is
a bug in the way the optimizer deals with thread_local variables. The
attached program, test.c, has a thread-local variable "int Foo" and a
global variable "int *Ptr". The program takes the following steps:
1) The main thread spawns a new thread and waits
2) The new thread writes Foo = 50 and
2009 May 04
1
[LLVMdev] [PATCH] Add support for accessing the FS segment register on X86
On May 4, 2009, at 3:16 PM, Dan Gohman wrote:
> Hello,
>
> The preferred way to do TLS is to use the thread_local keyword.
> There is x86-64 support for thread_local on ELF; if you need
> it for other targets, I recommend looking at adapting it.
That said, the X86 backend supporting access off FS is general
goodness, right?
-Chris
2012 Aug 08
1
[LLVMdev] clang thread-local compilation error on windows
Hello, I am trying to compile some code to LLVM IR with a simple "__thread
int x" but hitting this error:
test.cpp:1:1: error: thread-local storage is unsupported for the
current target
I'm using both the -S and -emit-llvm options on clang, and was expecting to
see "@x = thread_local global i32 0" come out of clang.
I am curious why clang even cares about this since
2010 May 13
0
[LLVMdev] Handling of thread_local globals by llc -march=cpp
I note also that this is not a currently unsupported target case where an error should/could/would be produced on attempting to emit code with thread local references. I say this because clang is able to compile both c source with __thread on a global and bc containing a @variable = thread_local global ... and a function that references the thread local global variable to both assembly and machine
2017 Feb 07
3
[cfe-dev] lli: LLVM ERROR: Cannot select: X86ISD::WrapperRIP TargetGlobalTLSAddress:i64
> I’ve seen the same problem, but didn’t find solution back then.
> I can give a hint that it is related to a thread local storage (notice
TLS in the name).
>
> The same result can be reproduced by this simple program:
>
> thread_local int x = 0;
> int main() {
> return 0;
> }
>
>When compiled into IR it produces similar error:
>
>LLVM ERROR:
2010 May 13
1
[LLVMdev] Handling of thread_local globals by llc -march=cpp
> I note also that this is not a currently unsupported target case where an error should/could/would be produced on attempting to emit code with thread local references. I say this because clang is able to compile both c source with __thread on a global and bc containing a @variable = thread_local global ... and a function that references the thread local global variable to both assembly and
2018 Dec 07
2
using emulated-tls on Darwin 8, 9, 10
Please excuse hobbiest-level question.
Darwin 11+ enables thread_local variables using system-level supports.
I have an interest in enabling TLS on darwin < 11 using emulated-tls. This can be enabled with a few modest patches:
==========================
--- a/include/llvm/ADT/Triple.h.orig 2018-10-02 17:38:10.000000000 -0700
+++ b/include/llvm/ADT/Triple.h 2018-10-02 17:38:58.000000000