hotspot/src/share/vm/runtime/simpleThresholdPolicy.inline.hpp
template<CompLevel level>
bool SimpleThresholdPolicy::loop_predicate_helper(int i, int b, double scale) {
{- -------------------------------------------
(1) 現在の InvocationCounter の値(i引数, b引数), 及び現在の JIT コンパイルレベル(level テンプレート引数) に基づき
以下の値をリターン.
(なお, scale 引数は比較対象の閾値を調整するためのもの. 比較時に閾値が scale 倍される)
* level が CompLevel_none もしくは CompLevel_limited_profile の場合:
以下が成り立てば true をリターン. そうでなければ false をリターン.
* backward branch の実行回数(b)が Tier3BackEdgeThreshold*scale を超えている
* level が CompLevel_full_profile の場合:
以下が成り立てば true をリターン. そうでなければ false をリターン.
* backward branch の実行回数(b)が Tier4BackEdgeThreshold*scale を超えている
---------------------------------------- -}
switch(level) {
case CompLevel_none:
case CompLevel_limited_profile:
return b > Tier3BackEdgeThreshold * scale;
case CompLevel_full_profile:
return b > Tier4BackEdgeThreshold * scale;
}
return true;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.