equal
deleted
inserted
replaced
573 if (is_method_handle_invoke()) { |
573 if (is_method_handle_invoke()) { |
574 // compilers must recognize this method specially, or not at all |
574 // compilers must recognize this method specially, or not at all |
575 return true; |
575 return true; |
576 } |
576 } |
577 |
577 |
578 methodDataOop mdo = method_data(); |
|
579 if (mdo != NULL |
|
580 && (uint)mdo->decompile_count() > (uint)PerMethodRecompilationCutoff) { |
|
581 // Since (uint)-1 is large, -1 really means 'no cutoff'. |
|
582 return true; |
|
583 } |
|
584 #ifdef COMPILER2 |
578 #ifdef COMPILER2 |
585 if (is_tier1_compile(comp_level)) { |
579 if (is_tier1_compile(comp_level)) { |
586 if (is_not_tier1_compilable()) { |
580 if (is_not_tier1_compilable()) { |
587 return true; |
581 return true; |
588 } |
582 } |
592 || (number_of_breakpoints() > 0); |
586 || (number_of_breakpoints() > 0); |
593 } |
587 } |
594 |
588 |
595 // call this when compiler finds that this method is not compilable |
589 // call this when compiler finds that this method is not compilable |
596 void methodOopDesc::set_not_compilable(int comp_level) { |
590 void methodOopDesc::set_not_compilable(int comp_level) { |
|
591 if (PrintCompilation) { |
|
592 ttyLocker ttyl; |
|
593 tty->print("made not compilable "); |
|
594 this->print_short_name(tty); |
|
595 int size = this->code_size(); |
|
596 if (size > 0) |
|
597 tty->print(" (%d bytes)", size); |
|
598 tty->cr(); |
|
599 } |
597 if ((TraceDeoptimization || LogCompilation) && (xtty != NULL)) { |
600 if ((TraceDeoptimization || LogCompilation) && (xtty != NULL)) { |
598 ttyLocker ttyl; |
601 ttyLocker ttyl; |
599 xtty->begin_elem("make_not_compilable thread='%d'", (int) os::current_thread_id()); |
602 xtty->begin_elem("make_not_compilable thread='%d'", (int) os::current_thread_id()); |
600 xtty->method(methodOop(this)); |
603 xtty->method(methodOop(this)); |
601 xtty->stamp(); |
604 xtty->stamp(); |