[LLVMdev] Adding support for explicitly specified TLS models (PR9788)

Hans Wennborg hans at chromium.org
Fri Apr 27 08:54:12 PDT 2012


On Fri, Apr 27, 2012 at 12:12, Joerg Sonnenberger
<joerg at britannica.bec.de> wrote:
>> It was pointed out in #llvm that programs that mix C and assembly to
>> access thread-local variables would break if the TLS model isn't what
>> they specify, so I still think there's a case for warning about it.
>
> Do they? In which specific constellation? The attribute is used only by
> codegen and the relocations for the different access methods can
> co-exist.

I don't know exactly what he meant. I figured that accessing a
thread-local variable via different access models (one from c code and
one from hand-written asm) would be a problem, but maybe it isn't in
practice.

> My main concern is code that needs to run across a wide number of platforms.
> Requesting a specific hot variable to be initial-exec can have a huge impact
> on runtime on platforms that supports this model like x86. It would be
> painful to have to use #if wrappers to workaround some bogus warning on
> platforms where initial-exec and global-dynamic are the same.

I see your point. FWIW, gcc doesn't warn about this either, as far as
I can tell.

 - Hans



More information about the llvm-dev mailing list