comparison src/share/vm/oops/methodOop.cpp @ 1206:87684f1a88b5

6614597: Performance variability in jvm2008 xml.validation Summary: Fix incorrect marking of methods as not compilable. Reviewed-by: never
author kvn
date Mon, 01 Feb 2010 16:49:49 -0800
parents 5f24d0319e54
children cef333a48af6
comparison
equal deleted inserted replaced
1205:5fcfaa1ad96f 1206:87684f1a88b5
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();