Rafael Espíndola
2012-Jun-04 22:10 UTC
[LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
On 4 June 2012 10:49, Hans Wennborg <hans at chromium.org> wrote:> Reviving this thread with a patch! > > And some comments inline. > > Please take a look and let me know what you think.Just a high level comment, why do you need the 4 modes + default? Can't clang just produce globaldynamic (or the attribute value) and let llvm optimize it? Since in the end the linker is allowed to relax tls access too, llvm should be allowed to make the mode more specific even if the user added an attribute at the C/C++ level.> - HansCheers, Rafael
Hans Wennborg
2012-Jun-05 09:37 UTC
[LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
On Mon, Jun 4, 2012 at 11:10 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:> On 4 June 2012 10:49, Hans Wennborg <hans at chromium.org> wrote: >> Reviving this thread with a patch! >> >> And some comments inline. >> >> Please take a look and let me know what you think. > > Just a high level comment, why do you need the 4 modes + default? > Can't clang just produce globaldynamic (or the attribute value) and > let llvm optimize it? Since in the end the linker is allowed to relax > tls access too, llvm should be allowed to make the mode more specific > even if the user added an attribute at the C/C++ level.I thought it was a good idea to make the user's choice explicit in the IR. If we combined the default and globaldynamic modes, LLVM wouldn't be able to tell the difference. It may or may not be important to be able to tell the difference, but it would be unfortunate if we'd have to go and change the IR format later because we limited ourselves here. Also, my patch does make a difference between the default and globaldynamic. If user specifies globaldynamic, LLVM will use that model, even if some other model would be better (it even adds support for doing globadynamic in non-PIC code). GCC does the same. Thanks, Hans
Rafael Espíndola
2012-Jun-12 14:41 UTC
[LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
> I thought it was a good idea to make the user's choice explicit in the > IR. If we combined the default and globaldynamic modes, LLVM wouldn't > be able to tell the difference. > > It may or may not be important to be able to tell the difference, but > it would be unfortunate if we'd have to go and change the IR format > later because we limited ourselves here. > > Also, my patch does make a difference between the default and > globaldynamic. If user specifies globaldynamic, LLVM will use that > model, even if some other model would be better (it even adds support > for doing globadynamic in non-PIC code). GCC does the same.Do you know what is the rationale for that? The static linker will optimize it anyway (but not do as good a job as the compiler could). If unsure I think it is safer to go without the 'default'. It is easier to add it to IL later than to remove it if it turns out we don't need it.> Thanks, > HansCheers, Rafael P.S.: Sorry for being so slow on the code reviews, was really busy.
Possibly Parallel Threads
- [LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
- [LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
- [LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
- [LLVMdev] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)
- [LLVMdev] [llvm-commits] [Patch, RFC] Re: Adding support for explicitly specified TLS models (PR9788)