Up Top

JIT Compiler の処理 (1) : JIT コンパイルを開始する処理 : 実行回数が閾値を超えたことによる開始処理 : (2) CompilationPolicy の処理 : SimpleCompPolicy の場合


概要(Summary)

SimpleCompPolicy クラスの CompilationPolicy オブジェクトの場合, CompilationPolicy::event() が呼ばれると NonTieredCompPolicy::event() が実行される.

JIT コンパイルを行うかどうかの判断は, 上記の関数から呼び出される SimpleCompPolicy::method_invocation_event() または SimpleCompPolicy::method_back_branch_event() で行われる.

処理の流れ (概要)(Execution Flows : Summary)

SimpleCompPolicy::event() (= NonTieredCompPolicy::event())
-> * メソッドのコンパイルの場合:
     -> SimpleCompPolicy::method_invocation_event()
        -> CompileBroker::compile_method()
           -> (See: here for details)
   * ループのコンパイルの場合:
     -> SimpleCompPolicy::method_back_branch_event()
        -> CompileBroker::compile_method()
           -> (See: here for details)

処理の流れ (詳細)(Execution Flows : Details)

NonTieredCompPolicy::event()

See: here for details

SimpleCompPolicy::method_invocation_event()

See: here for details

CompilationPolicy::is_compilation_enabled()

See: here for details

SimpleCompPolicy::method_back_branch_event()

See: here for details

CompilationPolicy::can_be_compiled()

See: here for details

methodOopDesc::is_not_compilable()

See: here for details

methodOopDesc::is_not_c1_compilable()

See: here for details

methodOopDesc::is_not_c2_compilable()

See: here for details

methodOopDesc::is_not_osr_compilable()

See: here for details


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.