resend: Request for reviews (S): 7146442: assert(false) failed: bad AD file
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:
>>> 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?
>>> Take into account only stores captured by Initialize node.
>>> Also added missing check for Top input in value() methods for CastP2X and
>>> CastX2P nodes.
More information about the hotspot-compiler-dev