--- old/src/share/vm/opto/bytecodeInfo.cpp 2016-10-13 14:39:40.582411900 +0200 +++ new/src/share/vm/opto/bytecodeInfo.cpp 2016-10-13 14:39:40.454411905 +0200 @@ -323,7 +323,7 @@ // Relocated from "InliningClosure::try_to_inline" bool InlineTree::try_to_inline(ciMethod* callee_method, ciMethod* caller_method, int caller_bci, JVMState* jvms, ciCallProfile& profile, - WarmCallInfo* wci_result, bool& should_delay) { + WarmCallInfo* wci_result, bool& should_delay, bool is_mh_inline) { if (ClipInlining && (int)count_inline_bcs() >= DesiredMethodLimit) { if (!callee_method->force_inline() || !IncrementalInline) { @@ -367,7 +367,7 @@ is_init_with_ea(callee_method, caller_method, C)) { // Escape Analysis stress testing when running Xcomp or CTW: // inline constructors even if they are not reached. - } else if (forced_inline()) { + } else if (forced_inline() || is_mh_inline) { // Inlining was forced by CompilerOracle, ciReplay or annotation } else if (profile.count() == 0) { // don't inline unreached call sites @@ -520,7 +520,7 @@ } //------------------------------ok_to_inline----------------------------------- -WarmCallInfo* InlineTree::ok_to_inline(ciMethod* callee_method, JVMState* jvms, ciCallProfile& profile, WarmCallInfo* initial_wci, bool& should_delay) { +WarmCallInfo* InlineTree::ok_to_inline(ciMethod* callee_method, JVMState* jvms, ciCallProfile& profile, WarmCallInfo* initial_wci, bool& should_delay, bool is_mh_inline) { assert(callee_method != NULL, "caller checks for optimized virtual!"); assert(!should_delay, "should be initialized to false"); #ifdef ASSERT @@ -553,7 +553,7 @@ // Check if inlining policy says no. WarmCallInfo wci = *(initial_wci); bool success = try_to_inline(callee_method, caller_method, caller_bci, - jvms, profile, &wci, should_delay); + jvms, profile, &wci, should_delay, is_mh_inline); #ifndef PRODUCT if (InlineWarmCalls && (PrintOpto || C->print_inlining())) {