(Please) Re: Request for review (S): 6833879 Assigning positive zero is ignored when old value is negative zero

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Mon May 4 16:23:27 PDT 2009


It feels a bit extreme but I don't see how we can ignore that it  
produces the wrong result dynamically.

tom

On May 4, 2009, at 2:44 PM, Changpeng Fang wrote:

> On 05/01/09 11:30, Changpeng Fang wrote:
>
> http://cr.openjdk.java.net/~cfang/6833879/webrev.01/
>>
>> I have updated the fix to disable the identity optimization for all  
>> floating point
>> comparison  (i.e.,  is_cmove_id always returns NULL for flaot and  
>> double).
>>
>>
>
> Thanks,
>
> Changpeng
>
>
>> Thanks,
>>
>> Changpeng
>>
>>
>>
>> On 04/29/09 12:32, Tom Rodriguez wrote:
>>> BTW, you can use TypeF::ZERO and TypeD::ZERO to check for positive  
>>> zero constants instead of breaking them down, as in phase->type(f)  
>>> == TypeF::ZERO.  I don't think this fix is sufficient.  It has the  
>>> same problem for "if (v == -0.0f) v == -0.0f" and as you said  
>>> originally it won't work right dynamically either.
>>>
>>> tom
>>>
>>> On Apr 29, 2009, at 10:59 AM, Changpeng Fang wrote:
>>>
>>>> http://cr.openjdk.java.net/~cfang/6833879/webrev.00/
>>>>
>>>> Problem:
>>>> For the following case:
>>>> public static double normalize(float v) {
>>>>      if (v == 0.0f) v = 0.0f;
>>>>      return v;
>>>> }
>>>> If -0.0 is passed, 0.0 is expected to be returned (it is the case  
>>>> for the interpreter). However,
>>>> PhiNode::Identity optimized away the "if and assignment"  
>>>> statement and the server vm
>>>> return -0.0.
>>>>
>>>> Proposed Solution:
>>>> Don't perform this kind of identity optimization if either true  
>>>> path or false path is constant
>>>> 0.0 or (-0.0)
>>>>
>>>> Open Issue:
>>>> When the true path or false path is not constant, it may still be  
>>>> 0.0 (-0.0) at run time.
>>>> Do we have to turn off this identity optimization completely  for  
>>>> float  and double (except
>>>> for constant non-zeros)?
>>>> Tests: Passed the test case in the CR report.
>>>>
>>>> Thanks,
>>>>
>>>> Changpeng
>>>
>>
>>
>




More information about the hotspot-compiler-dev mailing list