resend: Request for reviews (S): 7146442: assert(false) failed: bad AD file

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Feb 21 10:30:40 PST 2012


Tom Rodriguez wrote:
> On Feb 21, 2012, at 5:35 AM, Vladimir Kozlov wrote:
> 
>> http://cr.openjdk.java.net/~kvn/7146442/webrev
>>
>> 7146442: assert(false) failed: bad AD file
>>
>> EA code in find_init_values() is incorrect. It does not check for related loads
>> which could load NULL value from just allocated object before stores. As result
>> compare pointers (vs NULL) optimization could be incorrect.
> 
> So this created a bad graph that resulted in top showing up?

Yes. CmpPtr optimization incorrectly removed null check of the load from field. 
Later memory optimization (can_see_stored_value()) replaced load with NULL. As 
result we got CastPP(NULL)#NotNULL which produced Top. And due to missing check 
in CastP2X::value() we got CastP2X(Top) in matcher.

Thanks,
Vladimir

> 
>> Take into account only stores captured by Initialize node.
>>
>> Also added missing check for Top input in value() methods for CastP2X and
>> CastX2P nodes.
> 
> Ok.
> 
> tom
> 
>> Thanks,
>> Vladimir
> 


More information about the hotspot-compiler-dev mailing list