Mercurial > hg > graal-jvmci-8
diff src/share/vm/runtime/simpleThresholdPolicy.inline.hpp @ 20651:600c44255e5f
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
author | thartmann |
---|---|
date | Tue, 11 Nov 2014 11:05:41 +0100 |
parents | da91efe96a93 |
children | 7848fc12602b |
line wrap: on
line diff
--- a/src/share/vm/runtime/simpleThresholdPolicy.inline.hpp Tue Nov 18 00:56:42 2014 +0000 +++ b/src/share/vm/runtime/simpleThresholdPolicy.inline.hpp Tue Nov 11 11:05:41 2014 +0100 @@ -54,13 +54,17 @@ // 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(); - } + 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; }