< prev index next >

src/share/vm/c1/c1_GraphBuilder.cpp

Print this page

        

*** 1538,1556 **** } if (profile_return() && x->type()->is_object_kind()) { ciMethod* caller = state()->scope()->method(); ciMethodData* md = caller->method_data_or_null(); ciProfileData* data = md->bci_to_data(invoke_bci); - if (data != NULL && (data->is_CallTypeData() || data->is_VirtualCallTypeData())) { - bool has_return = data->is_CallTypeData() ? ((ciCallTypeData*)data)->has_return() : ((ciVirtualCallTypeData*)data)->has_return(); - // May not be true in case of an inlined call through a method handle intrinsic. - if (has_return) { profile_return_type(x, method(), caller, invoke_bci); } } - } - } Goto* goto_callee = new Goto(continuation(), false); // See whether this is the first return; if so, store off some // of the state for later examination if (num_returns() == 0) { --- 1538,1550 ----
*** 4364,4375 **** --- 4358,4372 ---- invoke_bci = bci(); } ciMethodData* md = m->method_data_or_null(); ciProfileData* data = md->bci_to_data(invoke_bci); if (data != NULL && (data->is_CallTypeData() || data->is_VirtualCallTypeData())) { + bool has_return = data->is_CallTypeData() ? ((ciCallTypeData*)data)->has_return() : ((ciVirtualCallTypeData*)data)->has_return(); + if (has_return) { append(new ProfileReturnType(m , invoke_bci, callee, ret)); } + } } void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state) { append(new ProfileInvoke(callee, state)); }
< prev index next >