hotspot/src/share/vm/opto/doCall.cpp
changeset 14132 3c1437abcefd
parent 13895 f6dfe4123709
child 14478 1c4a20806af7
equal deleted inserted replaced
14131:e376e3d428c9 14132:3c1437abcefd
   105   // then we return it as the inlined version of the call.
   105   // then we return it as the inlined version of the call.
   106   // We do this before the strict f.p. check below because the
   106   // We do this before the strict f.p. check below because the
   107   // intrinsics handle strict f.p. correctly.
   107   // intrinsics handle strict f.p. correctly.
   108   if (allow_inline && allow_intrinsics) {
   108   if (allow_inline && allow_intrinsics) {
   109     CallGenerator* cg = find_intrinsic(callee, call_is_virtual);
   109     CallGenerator* cg = find_intrinsic(callee, call_is_virtual);
   110     if (cg != NULL)  return cg;
   110     if (cg != NULL) {
       
   111       if (cg->is_predicted()) {
       
   112         // Code without intrinsic but, hopefully, inlined.
       
   113         CallGenerator* inline_cg = this->call_generator(callee,
       
   114               vtable_index, call_is_virtual, jvms, allow_inline, prof_factor, false);
       
   115         if (inline_cg != NULL) {
       
   116           cg = CallGenerator::for_predicted_intrinsic(cg, inline_cg);
       
   117         }
       
   118       }
       
   119       return cg;
       
   120     }
   111   }
   121   }
   112 
   122 
   113   // Do method handle calls.
   123   // Do method handle calls.
   114   // NOTE: This must happen before normal inlining logic below since
   124   // NOTE: This must happen before normal inlining logic below since
   115   // MethodHandle.invoke* are native methods which obviously don't
   125   // MethodHandle.invoke* are native methods which obviously don't