Please review: Bug: https://bugs.openjdk.java.net/browse/JDK-8195123 Webrev: http://cr.openjdk.java.net/~hannesw/8195123/webrev.00/
This undoes the recent fix for JDK-8193567 (Attila, in case you’re reading, I should have taken your doubts more serously) and replaces it with a different fix. Instead of disabling optimistic types within comparison nodes, the new fix avoids the shortcuts for null and undefined comparison if the compared expression contains an optimistic expression. Previously we only checked whether the expression itself was optimistic or contained the expression that triggered the current rest-of compilation. It’s easy to see why we must avoid it also for nested optimistic expressions, as they can trigger deoptimization as well. In my testing, this fixes the performance regression. Hannes