Up Top

JIT Compiler の処理 (1) : JIT コンパイルを開始する処理 : -Xcomp (-XX:-UseInterpreter), -XX:+AlwaysCompileLoopMethods による開始処理


概要(Summary)

以下のコマンドラインオプションが指定されている場合, JIT コンパイラの開始契機が増加する.

Option Description
-Xcomp (または -XX:-UseInterpreter) 全てのメソッドを実行前にコンパイルする
-XX:+AlwaysCompileLoopMethods ループを持っているメソッドについては、全て実行前にコンパイルする

内部的には, これらが指定されていると CompilationPolicy::must_be_compiled() が true を返すようになる. これにより, Constant Pool 中のメソッドの resolve 時やランタイムによるメソッドの呼び出し時に JIT コンパイルが開始される.

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

ConstantPool の resolve 時

(See: here for details)
-> CallInfo::set_common()
   -> CompileBroker::compile_method()
      -> (See: here for details)

ランタイムによるメソッド呼び出し時

(See: here for details)
-> JavaCalls::call_helper()
   -> CompileBroker::compile_method()
      -> (See: here for details)

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

CallInfo::set_common()

See: here for details

CompilationPolicy::must_be_compiled()

See: here for details

JavaCalls::call_helper()

See: here for details


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