RFR 8225337 [lworld] TestNewAcmp.java fails with C1 when java.lang.ClassValue::* are compiled

Ioi Lam ioi.lam at oracle.com
Mon Jun 10 05:02:41 UTC 2019


https://bugs.openjdk.java.net/browse/JDK-8225337
http://cr.openjdk.java.net/~iklam/valhalla/8225337-acmp-wrong-call-to-ValueBootstrapMethods-isSubstitutable.v01/

In C1, when an acmp operation cannot be handled in-line, we make a call
to ValueBootstrapMethods::isSubstitutable. We the call is made, 
registers are
spilled onto the stack. However, the call is made only conditionally, but
C1's register allocator can't handle this -- it think the registers are 
spilled
for all possible paths taken by the acmp operation.

The fix is to move the call into a new SubstitutabilityCheckStub. That's the
standard way of how C1 handles a slow path.

Thanks
- Ioi








More information about the valhalla-dev mailing list