src/share/vm/c1/c1_GraphBuilder.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Sep 25 16:23:20 2015
--- new/src/share/vm/c1/c1_GraphBuilder.cpp	Fri Sep 25 16:23:19 2015

*** 3363,3373 **** --- 3363,3373 ---- return NULL; } // 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()->dirset()->should_not_inline(callee)) return "disallowed by CompileCommand"; if ( callee->dont_inline()) return "don't inline by annotation"; return NULL; } void GraphBuilder::build_graph_for_intrinsic(ciMethod* callee) {
*** 3492,3503 **** --- 3492,3502 ---- // accesses critical VM-internal data. bool is_available = false; { 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->dirset()); } if (!is_available) { if (!InlineNatives) { // Return false and also set message that the inlining of
*** 3688,3704 **** --- 3687,3704 ---- if (is_profiling() && !callee->ensure_method_data()) { INLINE_BAILOUT("mdo allocation failed"); } // now perform tests that are based on flag settings if (callee->force_inline() || callee->should_inline()) { + bool inlinee_by_directive = compilation()->dirset()->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 if (inline_level() > MaxInlineLevel ) INLINE_BAILOUT("inlining too deep"); if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep");
*** 4205,4215 **** --- 4205,4216 ---- event.set_caller(method()->get_Method()); event.set_callee(callee->to_trace_struct()); event.commit(); } #endif // INCLUDE_TRACE if (!PrintInlining && !compilation()->method()->has_option("PrintInlining")) { + + if (!compilation()->dirset()->PrintInliningOption) { return; } CompileTask::print_inlining_tty(callee, scope()->level(), bci(), msg); if (success && CIPrintMethodCodes) { callee->print_codes();

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