diff -r cb7347310fa1 -r 0bb889c05406 src/hotspot/share/opto/doCall.cpp --- a/src/hotspot/share/opto/doCall.cpp Fri Jan 18 12:41:11 2019 -0800 +++ b/src/hotspot/share/opto/doCall.cpp Fri Jan 18 13:22:10 2019 -0800 @@ -261,7 +261,8 @@ Deoptimization::DeoptReason reason = morphism == 2 ? Deoptimization::Reason_bimorphic : Deoptimization::reason_class_check(speculative_receiver_type != NULL); if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL)) && - !too_many_traps(caller, bci, reason) + !too_many_traps(caller, bci, reason) && + !too_many_recompiles(caller, bci, reason) ) { // Generate uncommon trap for class check failure path // in case of monomorphic or bimorphic virtual call site.