< 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 >