src/share/vm/opto/parse2.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/parse2.cpp	Mon Oct 20 15:57:55 2014
--- new/src/share/vm/opto/parse2.cpp	Mon Oct 20 15:57:55 2014

*** 931,940 **** --- 931,943 ---- Block* branch_block = successor_for_bci(target_bci); Block* next_block = successor_for_bci(iter().next_bci()); float cnt; float prob = branch_prediction(cnt, btest, target_bci); + if (method()->intrinsic_id() == vmIntrinsics::_class_cast) { + prob = PROB_UNLIKELY_MAG(3); // 0.001 + } if (prob == PROB_UNKNOWN) { // (An earlier version of do_ifnull omitted this trap for OSR methods.) #ifndef PRODUCT if (PrintOpto && Verbose) tty->print_cr("Never-taken edge stops compilation at bci %d",bci());
*** 2221,2230 **** --- 2224,2234 ---- // If this is a backwards branch in the bytecodes, add Safepoint maybe_add_safepoint(iter().get_dest()); a = null(); b = pop(); if (!_gvn.type(b)->speculative_maybe_null() && + (method()->intrinsic_id() != vmIntrinsics::_class_cast) && !too_many_traps(Deoptimization::Reason_speculate_null_check)) { inc_sp(1); Node* null_ctl = top(); b = null_check_oop(b, &null_ctl, true, true, true); assert(null_ctl->is_top(), "no null control here");

src/share/vm/opto/parse2.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File