[LLVMdev] [PATCH] Add support for accessing the FS segment register on X86

Dan Gohman gohman at apple.com
Tue May 5 11:11:46 PDT 2009


I ultimately don't object to this patch.

I see now that thread_local is not fully supported on x86-64 in
the JIT. As a theoretical question however, would that not
provide the needed functionality? The JIT can easily get the
address for variables declared in the LLVM IR.

Also, be aware of PR3966.

Dan

On May 4, 2009, at 3:37 PM, Zoltan Varga wrote:

>
>  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 12:16 AM, Dan Gohman <gohman at apple.com> 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.
>
> 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 11:36 PM, Shantonu Sen <ssen at apple.com>  
> wrote:
> > Maybe 257 would be better (or other unused), because of r70197,
> > which gives special behavior for <256
> >
> > Shantonu Sen
> > ssen at apple.com
> >
> > Sent from my Mac Pro
> >
> >
> > On May 4, 2009, at 2:28 PM, Zoltan Varga wrote:
> >
> > Hi,
> >
> >  The attached patch adds support for accessing the FS segment
> > register using address space 255, similarly to the way the GS
> > segment register can be accessed. This is useful for generating TLS
> > access code on amd64 for example.
> >
> >              Zoltan
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
> >
> > <fs.diff>_______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list