Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] About thread_local in 3.0"
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
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
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
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
2011 Jan 08
0
[LLVMdev] Unreachable executed with fast Regalloc and Sparc backend
On Jan 7, 2011, at 2:36 PM, Venkatraman Govindaraju wrote:
> When I run LLC with option "-O0 -march=sparc" on following testcase,
> fast register allocator crashes with "UNREACHABLE executed" error. LLC
> generates code successfully with other standard register allocators
> available.
I haven't investigated the Sparc backend specifically but...
My guess 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
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
2011 Oct 12
0
[LLVMdev] dragonegg svn benchmarks
Hi Chris,
>> PS: With -fplugin-arg-dragonegg-enable-gcc-optzns the LLVM optimizers are run at
>> the following levels:
>>
>> Command line option LLVM optimizers run at
>> ------------------- ----------------------
>> -O1 tiny amount of optimization
>> -O2 or -O3 -O1
>> -O4 or -O5
2010 May 13
3
[LLVMdev] Handling of thread_local globals by llc -march=cpp
target triple = "i386-pc-linux-gnu"
On 13/05/2010, at 9:25 PM, Anton Korobeynikov wrote:
>> int (*FP)() = (int (*)())FPtr;
>> int res = FP();
>>
>> when the function executes correctly in the case of instead having created a standard global variable.
> What is the platform you're running the code on?
>
> --
> With best regards, Anton
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:
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
2012 Jan 23
2
[LLVMdev] Possible bug in the dragonegg
Hi Duncan,
>> #include<stdio.h>
>> #include<string.h>
>>
>> int main(int argc, char** argv){
>>
>> char a[8] = "aaaaaaa";
>> char b[8] = "bbbbbbb";
>>
>> char *c = (char*) malloc(sizeof(char)*(strlen(a)+strlen(b)+1));
>> memcpy(c, a, strlen(a));
>> memcpy(c + strlen(a), b, strlen(b) + 1);
>>
2012 Jan 23
2
[LLVMdev] Possible bug in the dragonegg
Hi all,
I came across something that seems to be a bug in the dragonegg option
that emits LLVM IR. ¿Can anybody reproduce the error, or see what's
wrong? ¿Should I post it somewhere else in case it's really a bug?
Thanks ahead!
With this simple program:
*
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv){
char a[8] = "aaaaaaa";
2004 Aug 15
4
[LLVMdev] Optimization Levels - Need The Details
Folks,
I'm at the point in developing llvmc (Compiler Driver) where I need to
get the details on the specific optimization arguments that the -O
family of options should (by default) issue to "opt". I'm soliciting
your feedback on this so I can start testing optimization. Hopefully you
can provide it by early this coming week.
For clarity, the -O options are currently defined
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
2005 Jul 25
1
[LLVMdev] How to partition registers into different RegisterClass?
2005/7/24, Chris Lattner <sabre at nondot.org>:
> Ah, ok. In that case, you want to put all of the registers in one register
> file, and not make the constant register allocatable (e.g. see
> X86RegisterInfo.td, and note how the register classes include EBP and ESP,
> but do not register allocate them (through the definition of
> allocation_order_end()).
>
> -Chris
2004 Aug 17
0
[LLVMdev] Optimization Levels - Need The Details
Reid,
I have one substantial change to suggest to this. I think the
distinction between module-level and cross-module optimization is
artificial and unnecessary in LLVM because transparent link-time
optimization makes intra-module and cross-module optimizations
indistiguishable. It *is* important to distinguish between fast and
slow optimizations. Because of this, I would suggest a
2011 Oct 11
4
[LLVMdev] dragonegg svn benchmarks
On Oct 8, 2011, at 12:05 PM, Duncan Sands wrote:
> PS: With -fplugin-arg-dragonegg-enable-gcc-optzns the LLVM optimizers are run at
> the following levels:
>
> Command line option LLVM optimizers run at
> ------------------- ----------------------
> -O1 tiny amount of optimization
> -O2 or -O3 -O1
> -O4 or -O5
2012 Jan 24
0
[LLVMdev] Possible bug in the dragonegg
Hi Pablo, I can reproduce this with the supplied IR. It is related to the use
of __memcpy_chk. As far as I can see it is a bug in lli or the LLVM code
generators. Can you please open a bugreport, attaching the LLVM IR.
Ciao, Duncan.
On 23/01/12 17:00, Pablo Barrio wrote:
> Hi Duncan,
>>> #include<stdio.h>
>>> #include<string.h>
>>>
>>> int
2012 Jan 23
0
[LLVMdev] Possible bug in the dragonegg
Hi Pablo,
> I came across something that seems to be a bug in the dragonegg option that
> emits LLVM IR. ¿Can anybody reproduce the error, or see what's wrong?
I can't reproduce this on x86-64 linux with latest LLVM+dragonegg+gcc-4.6.
¿Should I
> post it somewhere else in case it's really a bug? Thanks ahead!
>
> With this simple program:
> *
> #include