--- old/src/share/vm/c1/c1_GraphBuilder.cpp 2015-10-07 12:14:48.205344325 +0200 +++ new/src/share/vm/c1/c1_GraphBuilder.cpp 2015-10-07 12:14:48.097344321 +0200 @@ -3365,7 +3365,7 @@ // 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_not_inline()) return "disallowed by CompileCommand"; + if ( compilation()->directive()->should_not_inline(callee)) return "disallowed by CompileCommand"; if ( callee->dont_inline()) return "don't inline by annotation"; return NULL; } @@ -3494,8 +3494,7 @@ { VM_ENTRY_MARK; methodHandle mh(THREAD, callee->get_Method()); - methodHandle ct(THREAD, method()->get_Method()); - is_available = _compilation->compiler()->is_intrinsic_available(mh, ct); + is_available = _compilation->compiler()->is_intrinsic_available(mh, _compilation->directive()); } if (!is_available) { @@ -3690,13 +3689,14 @@ } // now perform tests that are based on flag settings - if (callee->force_inline() || callee->should_inline()) { + bool inlinee_by_directive = compilation()->directive()->should_inline(callee); + if (callee->force_inline() || inlinee_by_directive) { if (inline_level() > MaxForceInlineLevel ) INLINE_BAILOUT("MaxForceInlineLevel"); if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep"); const char* msg = ""; if (callee->force_inline()) msg = "force inline by annotation"; - if (callee->should_inline()) msg = "force inline by CompileCommand"; + if (inlinee_by_directive) msg = "force inline by CompileCommand"; print_inlining(callee, msg); } else { // use heuristic controls on inlining @@ -4207,7 +4207,8 @@ event.commit(); } #endif // INCLUDE_TRACE - if (!PrintInlining && !compilation()->method()->has_option("PrintInlining")) { + + if (!compilation()->directive()->PrintInliningOption) { return; } CompileTask::print_inlining_tty(callee, scope()->level(), bci(), msg);