3428 if (callee->should_inline()) { |
3428 if (callee->should_inline()) { |
3429 // ignore heuristic controls on inlining |
3429 // ignore heuristic controls on inlining |
3430 } else { |
3430 } else { |
3431 if (inline_level() > MaxInlineLevel ) INLINE_BAILOUT("too-deep inlining"); |
3431 if (inline_level() > MaxInlineLevel ) INLINE_BAILOUT("too-deep inlining"); |
3432 if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("too-deep recursive inlining"); |
3432 if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("too-deep recursive inlining"); |
3433 if (callee->code_size() > max_inline_size() ) INLINE_BAILOUT("callee is too large"); |
3433 if (callee->code_size_for_inlining() > max_inline_size() ) INLINE_BAILOUT("callee is too large"); |
3434 |
3434 |
3435 // don't inline throwable methods unless the inlining tree is rooted in a throwable class |
3435 // don't inline throwable methods unless the inlining tree is rooted in a throwable class |
3436 if (callee->name() == ciSymbol::object_initializer_name() && |
3436 if (callee->name() == ciSymbol::object_initializer_name() && |
3437 callee->holder()->is_subclass_of(ciEnv::current()->Throwable_klass())) { |
3437 callee->holder()->is_subclass_of(ciEnv::current()->Throwable_klass())) { |
3438 // Throwable constructor call |
3438 // Throwable constructor call |