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

Reply via email to