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

Tobias Hartmann tobias.hartmann at oracle.com
Fri Mar 6 07:26:09 UTC 2020


Hi Roland,

On 05.03.20 16:06, Roland Westrelin wrote:
> http://cr.openjdk.java.net/~roland/8239335/webrev.01/

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

>> Do I understand correctly that you relaxed condition for constant interfaces which would have 
>> _klass_is_exact set?
> 
> 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)?

Thanks,
Tobias


More information about the hotspot-compiler-dev mailing list