resend: Request for reviews (S): 7146442: assert(false) failed: bad AD file
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:
>> 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.
>> 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