equal
deleted
inserted
replaced
3493 compilation()->set_would_profile(true); |
3493 compilation()->set_would_profile(true); |
3494 |
3494 |
3495 if (profile_calls()) { |
3495 if (profile_calls()) { |
3496 profile_call(recv, holder_known ? callee->holder() : NULL); |
3496 profile_call(recv, holder_known ? callee->holder() : NULL); |
3497 } |
3497 } |
3498 if (profile_inlined_calls()) { |
|
3499 profile_invocation(callee, copy_state_before()); |
|
3500 } |
|
3501 } |
3498 } |
3502 |
3499 |
3503 // Introduce a new callee continuation point - if the callee has |
3500 // Introduce a new callee continuation point - if the callee has |
3504 // more than one return instruction or the return does not allow |
3501 // more than one return instruction or the return does not allow |
3505 // fall-through of control flow, all return instructions of the |
3502 // fall-through of control flow, all return instructions of the |
3567 |
3564 |
3568 if (compilation()->env()->dtrace_method_probes()) { |
3565 if (compilation()->env()->dtrace_method_probes()) { |
3569 Values* args = new Values(1); |
3566 Values* args = new Values(1); |
3570 args->push(append(new Constant(new ObjectConstant(method())))); |
3567 args->push(append(new Constant(new ObjectConstant(method())))); |
3571 append(new RuntimeCall(voidType, "dtrace_method_entry", CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), args)); |
3568 append(new RuntimeCall(voidType, "dtrace_method_entry", CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry), args)); |
|
3569 } |
|
3570 |
|
3571 if (profile_inlined_calls()) { |
|
3572 profile_invocation(callee, copy_state_before_with_bci(SynchronizationEntryBCI)); |
3572 } |
3573 } |
3573 |
3574 |
3574 BlockBegin* callee_start_block = block_at(0); |
3575 BlockBegin* callee_start_block = block_at(0); |
3575 if (callee_start_block != NULL) { |
3576 if (callee_start_block != NULL) { |
3576 assert(callee_start_block->is_set(BlockBegin::parser_loop_header_flag), "must be loop header"); |
3577 assert(callee_start_block->is_set(BlockBegin::parser_loop_header_flag), "must be loop header"); |