Mercurial > hg > truffle
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(); |