equal
deleted
inserted
replaced
697 address* signature_handler = signature_handler_addr(); |
697 address* signature_handler = signature_handler_addr(); |
698 *signature_handler = handler; |
698 *signature_handler = handler; |
699 } |
699 } |
700 |
700 |
701 |
701 |
702 void Method::print_made_not_compilable(int comp_level, bool is_osr, bool report) { |
702 void Method::print_made_not_compilable(int comp_level, bool is_osr, bool report, const char* reason) { |
703 if (PrintCompilation && report) { |
703 if (PrintCompilation && report) { |
704 ttyLocker ttyl; |
704 ttyLocker ttyl; |
705 tty->print("made not %scompilable on ", is_osr ? "OSR " : ""); |
705 tty->print("made not %scompilable on ", is_osr ? "OSR " : ""); |
706 if (comp_level == CompLevel_all) { |
706 if (comp_level == CompLevel_all) { |
707 tty->print("all levels "); |
707 tty->print("all levels "); |
711 tty->print("%d ", i); |
711 tty->print("%d ", i); |
712 } |
712 } |
713 } |
713 } |
714 this->print_short_name(tty); |
714 this->print_short_name(tty); |
715 int size = this->code_size(); |
715 int size = this->code_size(); |
716 if (size > 0) |
716 if (size > 0) { |
717 tty->print(" (%d bytes)", size); |
717 tty->print(" (%d bytes)", size); |
|
718 } |
|
719 if (reason != NULL) { |
|
720 tty->print(" %s", reason); |
|
721 } |
718 tty->cr(); |
722 tty->cr(); |
719 } |
723 } |
720 if ((TraceDeoptimization || LogCompilation) && (xtty != NULL)) { |
724 if ((TraceDeoptimization || LogCompilation) && (xtty != NULL)) { |
721 ttyLocker ttyl; |
725 ttyLocker ttyl; |
722 xtty->begin_elem("make_not_%scompilable thread='" UINTX_FORMAT "'", |
726 xtty->begin_elem("make_not_%scompilable thread='" UINTX_FORMAT "'", |
723 is_osr ? "osr_" : "", os::current_thread_id()); |
727 is_osr ? "osr_" : "", os::current_thread_id()); |
|
728 if (reason != NULL) { |
|
729 xtty->print(" reason=\'%s\'", reason); |
|
730 } |
724 xtty->method(this); |
731 xtty->method(this); |
725 xtty->stamp(); |
732 xtty->stamp(); |
726 xtty->end_elem(); |
733 xtty->end_elem(); |
727 } |
734 } |
728 } |
735 } |
740 return is_not_c2_compilable(); |
747 return is_not_c2_compilable(); |
741 return false; |
748 return false; |
742 } |
749 } |
743 |
750 |
744 // call this when compiler finds that this method is not compilable |
751 // call this when compiler finds that this method is not compilable |
745 void Method::set_not_compilable(int comp_level, bool report) { |
752 void Method::set_not_compilable(int comp_level, bool report, const char* reason) { |
746 print_made_not_compilable(comp_level, /*is_osr*/ false, report); |
753 print_made_not_compilable(comp_level, /*is_osr*/ false, report, reason); |
747 if (comp_level == CompLevel_all) { |
754 if (comp_level == CompLevel_all) { |
748 set_not_c1_compilable(); |
755 set_not_c1_compilable(); |
749 set_not_c2_compilable(); |
756 set_not_c2_compilable(); |
750 } else { |
757 } else { |
751 if (is_c1_compile(comp_level)) |
758 if (is_c1_compile(comp_level)) |
766 if (is_c2_compile(comp_level)) |
773 if (is_c2_compile(comp_level)) |
767 return is_not_c2_osr_compilable(); |
774 return is_not_c2_osr_compilable(); |
768 return false; |
775 return false; |
769 } |
776 } |
770 |
777 |
771 void Method::set_not_osr_compilable(int comp_level, bool report) { |
778 void Method::set_not_osr_compilable(int comp_level, bool report, const char* reason) { |
772 print_made_not_compilable(comp_level, /*is_osr*/ true, report); |
779 print_made_not_compilable(comp_level, /*is_osr*/ true, report, reason); |
773 if (comp_level == CompLevel_all) { |
780 if (comp_level == CompLevel_all) { |
774 set_not_c1_osr_compilable(); |
781 set_not_c1_osr_compilable(); |
775 set_not_c2_osr_compilable(); |
782 set_not_c2_osr_compilable(); |
776 } else { |
783 } else { |
777 if (is_c1_compile(comp_level)) |
784 if (is_c1_compile(comp_level)) |