Mercurial > hg > graal-jvmci-8
comparison 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 |
comparison
equal
deleted
inserted
replaced
20650:f84125b6f69a | 20651:600c44255e5f |
---|---|
52 } | 52 } |
53 | 53 |
54 // Simple methods are as good being compiled with C1 as C2. | 54 // Simple methods are as good being compiled with C1 as C2. |
55 // Determine if a given method is such a case. | 55 // Determine if a given method is such a case. |
56 bool SimpleThresholdPolicy::is_trivial(Method* method) { | 56 bool SimpleThresholdPolicy::is_trivial(Method* method) { |
57 if (method->is_accessor()) return true; | 57 if (method->is_accessor() || |
58 if (method->code() != NULL) { | 58 method->is_constant_getter()) { |
59 MethodData* mdo = method->method_data(); | 59 return true; |
60 if (mdo != NULL && mdo->num_loops() == 0 && | 60 } |
61 (method->code_size() < 5 || (mdo->num_blocks() < 4) && (method->code_size() < 15))) { | 61 if (method->has_loops() || method->code_size() >= 15) { |
62 return !mdo->would_profile(); | 62 return false; |
63 } | 63 } |
64 MethodData* mdo = method->method_data(); | |
65 if (mdo != NULL && !mdo->would_profile() && | |
66 (method->code_size() < 5 || (mdo->num_blocks() < 4))) { | |
67 return true; | |
64 } | 68 } |
65 return false; | 69 return false; |
66 } | 70 } |
67 | 71 |
68 #endif // SHARE_VM_RUNTIME_SIMPLETHRESHOLDPOLICY_INLINE_HPP | 72 #endif // SHARE_VM_RUNTIME_SIMPLETHRESHOLDPOLICY_INLINE_HPP |