Top


定義場所(file name)

hotspot/src/share/vm/runtime/compilationPolicy.cpp

名前(function name)

void SimpleCompPolicy::method_back_branch_event(methodHandle m, int bci, TRAPS) {

本体部(body)

  {- -------------------------------------------
  (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.