Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/compilationPolicy.cpp @ 12355:cefad50507d8
Merge with hs25-b53
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 11 Oct 2013 10:38:03 +0200 |
parents | e7d07c9bb779 f99558245e5c |
children | 359f7e70ae7f |
comparison
equal
deleted
inserted
replaced
12058:ccb4f2af2319 | 12355:cefad50507d8 |
---|---|
134 } | 134 } |
135 } else if (is_compile(comp_level)) { | 135 } else if (is_compile(comp_level)) { |
136 return !m->is_not_compilable(comp_level); | 136 return !m->is_not_compilable(comp_level); |
137 } | 137 } |
138 return false; | 138 return false; |
139 } | |
140 | |
141 // Returns true if m is allowed to be osr compiled | |
142 bool CompilationPolicy::can_be_osr_compiled(methodHandle m, int comp_level) { | |
143 bool result = false; | |
144 if (comp_level == CompLevel_all) { | |
145 if (TieredCompilation) { | |
146 // enough to be osr compilable at any level for tiered | |
147 result = !m->is_not_osr_compilable(CompLevel_simple) || !m->is_not_osr_compilable(CompLevel_full_optimization); | |
148 } else { | |
149 // must be osr compilable at available level for non-tiered | |
150 result = !m->is_not_osr_compilable(CompLevel_highest_tier); | |
151 } | |
152 } else if (is_compile(comp_level)) { | |
153 result = !m->is_not_osr_compilable(comp_level); | |
154 } | |
155 return (result && can_be_compiled(m, comp_level)); | |
139 } | 156 } |
140 | 157 |
141 bool CompilationPolicy::is_compilation_enabled() { | 158 bool CompilationPolicy::is_compilation_enabled() { |
142 // NOTE: CompileBroker::should_compile_new_jobs() checks for UseCompiler | 159 // NOTE: CompileBroker::should_compile_new_jobs() checks for UseCompiler |
143 return !delay_compilation_during_startup() && CompileBroker::should_compile_new_jobs(); | 160 return !delay_compilation_during_startup() && CompileBroker::should_compile_new_jobs(); |
456 void SimpleCompPolicy::method_back_branch_event(methodHandle m, int bci, JavaThread* thread) { | 473 void SimpleCompPolicy::method_back_branch_event(methodHandle m, int bci, JavaThread* thread) { |
457 const int comp_level = CompLevel_highest_tier; | 474 const int comp_level = CompLevel_highest_tier; |
458 const int hot_count = m->backedge_count(); | 475 const int hot_count = m->backedge_count(); |
459 const char* comment = "backedge_count"; | 476 const char* comment = "backedge_count"; |
460 | 477 |
461 if (is_compilation_enabled() && !m->is_not_osr_compilable(comp_level) && can_be_compiled(m, comp_level)) { | 478 if (is_compilation_enabled() && can_be_osr_compiled(m, comp_level)) { |
462 CompileBroker::compile_method(m, bci, comp_level, m, hot_count, comment, thread); | 479 CompileBroker::compile_method(m, bci, comp_level, m, hot_count, comment, thread); |
463 NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(bci, comp_level, true));) | 480 NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(bci, comp_level, true));) |
464 } | 481 } |
465 } | 482 } |
466 | 483 |
513 void StackWalkCompPolicy::method_back_branch_event(methodHandle m, int bci, JavaThread* thread) { | 530 void StackWalkCompPolicy::method_back_branch_event(methodHandle m, int bci, JavaThread* thread) { |
514 const int comp_level = CompLevel_highest_tier; | 531 const int comp_level = CompLevel_highest_tier; |
515 const int hot_count = m->backedge_count(); | 532 const int hot_count = m->backedge_count(); |
516 const char* comment = "backedge_count"; | 533 const char* comment = "backedge_count"; |
517 | 534 |
518 if (is_compilation_enabled() && !m->is_not_osr_compilable(comp_level) && can_be_compiled(m, comp_level)) { | 535 if (is_compilation_enabled() && can_be_osr_compiled(m, comp_level)) { |
519 CompileBroker::compile_method(m, bci, comp_level, m, hot_count, comment, thread); | 536 CompileBroker::compile_method(m, bci, comp_level, m, hot_count, comment, thread); |
520 NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(bci, comp_level, true));) | 537 NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(bci, comp_level, true));) |
521 } | 538 } |
522 } | 539 } |
523 | 540 |