--- old/src/share/vm/opto/parse2.cpp 2017-06-07 09:44:57.823571295 +0200 +++ new/src/share/vm/opto/parse2.cpp 2017-06-07 09:44:57.133572203 +0200 @@ -2282,6 +2282,11 @@ b = null_check_oop(b, &null_ctl, true, true, true); assert(null_ctl->is_top(), "no null control here"); dec_sp(1); + } else if (_gvn.type(b)->speculative_always_null() && + !too_many_traps(Deoptimization::Reason_speculate_null_assert)) { + inc_sp(1); + b = null_assert(b); + dec_sp(1); } c = _gvn.transform( new CmpPNode(b, a) ); do_ifnull(btest, c);