Request for reviews (S): 6910484: incorrect integer optimization (loosing and op-r in a given example)

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Fri Jan 8 09:30:08 PST 2010


I get it now.  Looks good.

tom

On Jan 7, 2010, at 7:10 PM, Vladimir Kozlov wrote:

> On 1/7/10 7:00 PM, Tom Rodriguez wrote:
>> Why does the new test only guard the dividend->in(i) line and not the needs_rounding line?  Shouldn't it guard both?
> 
> Previous outer check has it: (-andconi) >= d
> 
> Rounding is not needed if mask cleans up more or equal number of bits then shift.
> 
> Vladimir
> 
>> 
>> tom
>> 
>> On Jan 7, 2010, at 5:48 PM, Vladimir Kozlov wrote:
>> 
>>> 
>>> http://cr.openjdk.java.net/~kvn/6910484/webrev
>>> 
>>> Fixed 6910484: incorrect integer optimization (loosing and op-r in a given example)
>>> 
>>> Problem:
>>> After 6667595 changes Div node ideal optimization incorrectly
>>> removes AND operation if mask is larger then shift:
>>> 
>>> (x&  -32)/2 incorrectly transformed to x/2
>>> 
>>> Solution:
>>> Remove AND operation only if mask is equal to shift.
>>> Add regression test.
>>> 
>>> Reviewed by:
>>> 
>>> Fix verified (y/n): y, test
>>> 
>>> Other testing:
>>> JPRT
>>> 
>> 



More information about the hotspot-compiler-dev mailing list