Up Top

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


概要(Summary)

InvocationCounter のカウンタ値が閾値を超えると, CompilationPolicy オブジェクトの CompilationPolicy::event() が呼び出される (See: here for details).

実際には CompilationPolicy オブジェクトには以下の4つのクラスがあり, それぞれのクラスで CompilationPolicy::event() をオーバーライドした関数が実行される (See: here, here, here and here for details).

Subclass Function
SimpleCompPolicy NonTieredCompPolicy::event()
StackWalkCompPolicy NonTieredCompPolicy::event()
SimpleThresholdPolicy SimpleThresholdPolicy::event()
AdvancedThresholdPolicy SimpleThresholdPolicy::event()

この関数で JIT コンパイルを行うべきと判断された場合, CompileBroker::compile_method() が呼び出されて JIT コンパイルが開始される. (See: here for details)

備考(Notes)

Subcategories


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