1.1 --- a/src/share/vm/c1/c1_GraphBuilder.cpp Fri Mar 28 10:04:07 2014 -0700 1.2 +++ b/src/share/vm/c1/c1_GraphBuilder.cpp Fri Mar 28 10:12:48 2014 -0700 1.3 @@ -3767,11 +3767,14 @@ 1.4 } 1.5 1.6 // now perform tests that are based on flag settings 1.7 - if (callee->force_inline()) { 1.8 - if (inline_level() > MaxForceInlineLevel) INLINE_BAILOUT("MaxForceInlineLevel"); 1.9 - print_inlining(callee, "force inline by annotation"); 1.10 - } else if (callee->should_inline()) { 1.11 - print_inlining(callee, "force inline by CompileOracle"); 1.12 + if (callee->force_inline() || callee->should_inline()) { 1.13 + if (inline_level() > MaxForceInlineLevel ) INLINE_BAILOUT("MaxForceInlineLevel"); 1.14 + if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep"); 1.15 + 1.16 + const char* msg = ""; 1.17 + if (callee->force_inline()) msg = "force inline by annotation"; 1.18 + if (callee->should_inline()) msg = "force inline by CompileOracle"; 1.19 + print_inlining(callee, msg); 1.20 } else { 1.21 // use heuristic controls on inlining 1.22 if (inline_level() > MaxInlineLevel ) INLINE_BAILOUT("inlining too deep");