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


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 
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.

- Ioi

More information about the valhalla-dev mailing list