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