On Thu, 29 May 2014 10:20:39 -0400, Jesse Phillips <jesse.k.phillip...@gmail.com> wrote:

On Thursday, 29 May 2014 at 13:11:52 UTC, Steven Schveighoffer wrote:
IIRC, the entire section of global TLS data is initialized, and is all contiguous memory, so it would be anti-performant to initialize all but 4 bytes.


     int x2;
     float f2;

These are both TLS and they init to different values, I suppose:

     float f2prime = void;

would mean f2prime is 0 and not float.init. Otherwise what you state is kind of what I was expecting.

This is not what I would have expected. But one can test easily enough :)

http://dpaste.dzfl.pl/6619cf538f8e

I find this interesting. I would have expected the TLS initialization to be one giant memcpy. If it is, I find it puzzling that these would be different.

The only logical explanation is that TLS is initialized first with all zeros, and then specific inits are overlaid on types that have inits. Otherwise, what difference does it make if you are blitting 0's or nans?

-Steve

Reply via email to