hotspot/src/share/vm/runtime/compilationPolicy.cpp
void StackWalkCompPolicy::method_back_branch_event(methodHandle m, int bci, TRAPS) {
{- -------------------------------------------
(1) (変数宣言など)
---------------------------------------- -}
int hot_count = m->backedge_count();
const char* comment = "backedge_count";
{- -------------------------------------------
(1) CompileBroker::compile_method() を呼んで, JIT コンパイル処理を行う.
ただし, 以下の場合は JIT コンパイル処理は行わない.
* JIT コンパイル処理を行ってはいけない状況 (= CompilationPolicy::is_compilation_enabled() が false) の場合
* 処理対象が, OSR(OnStackReplacement) 用の JIT コンパイルが禁止されているメソッドである場合 (= methodOopDesc::is_not_osr_compilable() が false)
* 処理対象が, JIT コンパイルが禁止されているメソッドである場合 (= CompilationPolicy::can_be_compiled() が false)
---------------------------------------- -}
if (is_compilation_enabled() && !m->is_not_osr_compilable() && can_be_compiled(m)) {
CompileBroker::compile_method(m, bci, CompLevel_highest_tier, m, hot_count, comment, CHECK);
NOT_PRODUCT(trace_osr_completion(m->lookup_osr_nmethod_for(bci, CompLevel_highest_tier, true));)
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.