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

Tom Rodriguez tom.rodriguez at oracle.com
Tue Feb 21 10:35:47 PST 2012


On Feb 21, 2012, at 10:30 AM, Vladimir Kozlov wrote:

> 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.

If it has been there, then what would have happened?  Generic bad graph failure?

tom


> 
> 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