equal
deleted
inserted
replaced
31 #include "ci/ciField.hpp" |
31 #include "ci/ciField.hpp" |
32 #include "ci/ciKlass.hpp" |
32 #include "ci/ciKlass.hpp" |
33 #include "compiler/compileBroker.hpp" |
33 #include "compiler/compileBroker.hpp" |
34 #include "interpreter/bytecode.hpp" |
34 #include "interpreter/bytecode.hpp" |
35 #include "runtime/sharedRuntime.hpp" |
35 #include "runtime/sharedRuntime.hpp" |
|
36 #include "runtime/compilationPolicy.hpp" |
36 #include "utilities/bitMap.inline.hpp" |
37 #include "utilities/bitMap.inline.hpp" |
37 |
38 |
38 class BlockListBuilder VALUE_OBJ_CLASS_SPEC { |
39 class BlockListBuilder VALUE_OBJ_CLASS_SPEC { |
39 private: |
40 private: |
40 Compilation* _compilation; |
41 Compilation* _compilation; |
3393 } |
3394 } |
3394 |
3395 |
3395 |
3396 |
3396 bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) { |
3397 bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) { |
3397 assert(!callee->is_native(), "callee must not be native"); |
3398 assert(!callee->is_native(), "callee must not be native"); |
3398 if (count_backedges() && callee->has_loops()) { |
3399 if (CompilationPolicy::policy()->should_not_inline(compilation()->env(), callee)) { |
3399 INLINE_BAILOUT("too complex for tiered"); |
3400 INLINE_BAILOUT("inlining prohibited by policy"); |
3400 } |
3401 } |
3401 // first perform tests of things it's not possible to inline |
3402 // first perform tests of things it's not possible to inline |
3402 if (callee->has_exception_handlers() && |
3403 if (callee->has_exception_handlers() && |
3403 !InlineMethodsWithExceptionHandlers) INLINE_BAILOUT("callee has exception handlers"); |
3404 !InlineMethodsWithExceptionHandlers) INLINE_BAILOUT("callee has exception handlers"); |
3404 if (callee->is_synchronized() && |
3405 if (callee->is_synchronized() && |