< prev index next >
hotspot/src/share/vm/runtime/simpleThresholdPolicy.inline.hpp
Print this page
rev 6907 : 8056071: compiler/whitebox/IsMethodCompilableTest.java fails with 'method() is not compilable after 3 iterations'
Summary: Always use MDO if valid and always compile trivial methods with C1 if available.
Reviewed-by: kvn, iveresov
*** 52,68 ****
}
// Simple methods are as good being compiled with C1 as C2.
// Determine if a given method is such a case.
bool SimpleThresholdPolicy::is_trivial(Method* method) {
! if (method->is_accessor()) return true;
! if (method->code() != NULL) {
! MethodData* mdo = method->method_data();
! if (mdo != NULL && mdo->num_loops() == 0 &&
! (method->code_size() < 5 || (mdo->num_blocks() < 4) && (method->code_size() < 15))) {
! return !mdo->would_profile();
}
}
return false;
}
#endif // SHARE_VM_RUNTIME_SIMPLETHRESHOLDPOLICY_INLINE_HPP
--- 52,72 ----
}
// Simple methods are as good being compiled with C1 as C2.
// Determine if a given method is such a case.
bool SimpleThresholdPolicy::is_trivial(Method* method) {
! if (method->is_accessor() ||
! method->is_constant_getter()) {
! return true;
! }
! if (method->has_loops() || method->code_size() >= 15) {
! return false;
}
+ MethodData* mdo = method->method_data();
+ if (mdo != NULL && !mdo->would_profile() &&
+ (method->code_size() < 5 || (mdo->num_blocks() < 4))) {
+ return true;
}
return false;
}
#endif // SHARE_VM_RUNTIME_SIMPLETHRESHOLDPOLICY_INLINE_HPP
< prev index next >