Re: Issue 5689

2012-03-16 Thread Daniel Murphy
James Miller ja...@aatch.net wrote in message 
news:mailman.744.1331866908.4860.digitalmar...@puremagic.com...

 My code uses floats, so I just tested using floats instead of doubles
 and while I don't get the error, I do get incorrect values. I'll post
 the code I used and the disassembly to bugzilla.

 --
 James Miller

It might be worth trying it against this patch: 
https://github.com/D-Programming-Language/dmd/pull/769

On the off chance that I've already fixed it. 




Re: Issue 5689

2012-03-15 Thread Daniel Murphy
James Miller ja...@aatch.net wrote in message 
news:mailman.693.1331810915.4860.digitalmar...@puremagic.com...
 Hey,

 Whats the word on this issue:

 http://d.puremagic.com/issues/show_bug.cgi?id=5689

 Its kinda killing my ability to profile my code here, since the
 program is no longer valid when compiled with -profile.

 --
 James Miller

Yum, looks like another xmm codegen bug.  I'll add it to my todo list. 




Re: Issue 5689

2012-03-15 Thread James Miller
On 16 March 2012 03:00, Daniel Murphy yebbl...@nospamgmail.com wrote:
 James Miller ja...@aatch.net wrote in message
 news:mailman.693.1331810915.4860.digitalmar...@puremagic.com...
 Hey,

 Whats the word on this issue:

 http://d.puremagic.com/issues/show_bug.cgi?id=5689

 Its kinda killing my ability to profile my code here, since the
 program is no longer valid when compiled with -profile.

 --
 James Miller

 Yum, looks like another xmm codegen bug.  I'll add it to my todo list.



Out of curiosity, what does -profile do that could cause this bug?
Seems like an odd cause, since in my specific case, I don't even get
an error, just crazy values, -2^31 to ~10^38, in later calculations

--
James Miller


Re: Issue 5689

2012-03-15 Thread Daniel Murphy
James Miller ja...@aatch.net wrote in message 
news:mailman.707.1331841671.4860.digitalmar...@puremagic.com...
 Out of curiosity, what does -profile do that could cause this bug?
 Seems like an odd cause, since in my specific case, I don't even get
 an error, just crazy values, -2^31 to ~10^38, in later calculations

 --
 James Miller

IIRC the code that actually does -profile is in the backend, and is done 
with very low-level calls.  Inserting calls can change the register usage 
patterns, interfere with cse elimination, etc.  I assume this is what is 
happening, and with x64 and doubles that mean xmm codegen, which is still 
relatively new and buggy.

Could you post the disassembly? (with intel syntax please)

It might be possible to work around it by changing the calling convention of 
uniform and/or the functions it calls. 




Re: Issue 5689

2012-03-15 Thread James Miller
On 16 March 2012 14:36, Daniel Murphy yebbl...@nospamgmail.com wrote:
 James Miller ja...@aatch.net wrote in message
 news:mailman.707.1331841671.4860.digitalmar...@puremagic.com...
 Out of curiosity, what does -profile do that could cause this bug?
 Seems like an odd cause, since in my specific case, I don't even get
 an error, just crazy values, -2^31 to ~10^38, in later calculations

 --
 James Miller

 IIRC the code that actually does -profile is in the backend, and is done
 with very low-level calls.  Inserting calls can change the register usage
 patterns, interfere with cse elimination, etc.  I assume this is what is
 happening, and with x64 and doubles that mean xmm codegen, which is still
 relatively new and buggy.

 Could you post the disassembly? (with intel syntax please)

 It might be possible to work around it by changing the calling convention of
 uniform and/or the functions it calls.

My code uses floats, so I just tested using floats instead of doubles
and while I don't get the error, I do get incorrect values. I'll post
the code I used and the disassembly to bugzilla.

--
James Miller