RFR(XS): 8239335: C2: assert((Value(phase) == t) || (t != TypeInt::CC_GT && t != TypeInt::CC_EQ)) failed: missing Value() optimization

Roland Westrelin rwestrel at redhat.com
Fri Mar 6 10:48:13 UTC 2020


Thanks for reviewing this.

> In subtypenode.cpp:41 it should be "Interfaces *can't* be trusted",
> right?

Yes. I'll fix that.

>> Yes because in that case AFAIU, the subclass can only a constant class
>> pointer and we can trust that we are actually testing an interface.
>
> Where is that case optimized without your changes (I can't find it in CmpPNode::sub)?

It's converted to a pointer comparison and CmpPNode::sub() constant
folds it because both inputs are constant so the result of the
comparison is known.

Roland.



More information about the hotspot-compiler-dev mailing list