This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: TLS, gcc optimizations, and PIC on x86


It looks like 'optimize' is necessary in cases where I do something like:

__thread int i = 0;
i = 5;  // Set variable in original tls region
set_tls_desc(new_tls);
i = 5;  // Set variable in new tls region

Where I set i equal to the same value, but in 2 different TLS regions.
 Glancing through the assembly, it appears that the code for the
nested function indeed get's generated (as per the 'noinline'), but
then it simply noops and returns.

Kevin

On Tue, Sep 6, 2011 at 12:09 AM, Ian Lance Taylor <iant@google.com> wrote:
> Kevin Klues <klueska@cs.berkeley.edu> writes:
>
>> That said, do you see any obvious issues with my solution? ?It seems
>> to work for all of the test cases I've thrown at it, but I could be
>> missing something. ?Additionally, do you have any suggestions for a
>> better method that achieves similar results? ?Ideally I'd like a
>> solution that didn't require the use of the 'optimize' attribute as
>> (unfortunately) some of the systems on which we'd like to compile our
>> code still use gcc < 4.4.
>
> I don't see any obvious issues with your solution. ?I'm not sure why you
> need to use the optimize attribute; I would have expected that the
> noinline attribute would be sufficient here.
>
> Ian
>



-- 
~K€vin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]