src/share/vm/c1/c1_GraphBuilder.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot-comp Cdiff src/share/vm/c1/c1_GraphBuilder.cpp

src/share/vm/c1/c1_GraphBuilder.cpp

Print this page
rev 5403 : 8012941: JSR 292: too deep inlining might crash compiler because of stack overflow
Reviewed-by: ?

*** 3270,3280 **** } // negative filter: should callee NOT be inlined? returns NULL, ok to inline, or rejection msg const char* GraphBuilder::should_not_inline(ciMethod* callee) const { ! if ( callee->should_exclude()) return "excluded by CompilerOracle"; if ( callee->should_not_inline()) return "disallowed by CompilerOracle"; if ( callee->dont_inline()) return "don't inline by annotation"; return NULL; } --- 3270,3281 ---- } // negative filter: should callee NOT be inlined? returns NULL, ok to inline, or rejection msg const char* GraphBuilder::should_not_inline(ciMethod* callee) const { ! if ( callee->should_exclude() && ! !callee->should_inline()) return "excluded by CompilerOracle"; if ( callee->should_not_inline()) return "disallowed by CompilerOracle"; if ( callee->dont_inline()) return "don't inline by annotation"; return NULL; }
*** 3702,3711 **** --- 3703,3713 ---- INLINE_BAILOUT("mdo allocation failed"); } // now perform tests that are based on flag settings if (callee->force_inline()) { + if (inline_level() > MaxForceInlineLevel) INLINE_BAILOUT("MaxForceInlineLevel"); print_inlining(callee, "force inline by annotation"); } else if (callee->should_inline()) { print_inlining(callee, "force inline by CompileOracle"); } else { // use heuristic controls on inlining
src/share/vm/c1/c1_GraphBuilder.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File