src/share/vm/opto/doCall.cpp

changeset 7041
411e30e5fbb8
parent 7026
922c87c9aed4
child 7266
331df100ad40
equal deleted inserted replaced
7040:da00a41842a5 7041:411e30e5fbb8
521 521
522 // Bump method data counters (We profile *before* the call is made 522 // Bump method data counters (We profile *before* the call is made
523 // because exceptions don't return to the call site.) 523 // because exceptions don't return to the call site.)
524 profile_call(receiver); 524 profile_call(receiver);
525 525
526 JVMState* new_jvms = cg->generate(jvms, this); 526 JVMState* new_jvms = cg->generate(jvms);
527 if (new_jvms == NULL) { 527 if (new_jvms == NULL) {
528 // When inlining attempt fails (e.g., too many arguments), 528 // When inlining attempt fails (e.g., too many arguments),
529 // it may contaminate the current compile state, making it 529 // it may contaminate the current compile state, making it
530 // impossible to pull back and try again. Once we call 530 // impossible to pull back and try again. Once we call
531 // cg->generate(), we are committed. If it fails, the whole 531 // cg->generate(), we are committed. If it fails, the whole
535 // This can happen if a library intrinsic is available, but refuses 535 // This can happen if a library intrinsic is available, but refuses
536 // the call site, perhaps because it did not match a pattern the 536 // the call site, perhaps because it did not match a pattern the
537 // intrinsic was expecting to optimize. Should always be possible to 537 // intrinsic was expecting to optimize. Should always be possible to
538 // get a normal java call that may inline in that case 538 // get a normal java call that may inline in that case
539 cg = C->call_generator(cg->method(), vtable_index, call_does_dispatch, jvms, try_inline, prof_factor(), speculative_receiver_type, /* allow_intrinsics= */ false); 539 cg = C->call_generator(cg->method(), vtable_index, call_does_dispatch, jvms, try_inline, prof_factor(), speculative_receiver_type, /* allow_intrinsics= */ false);
540 if ((new_jvms = cg->generate(jvms, this)) == NULL) { 540 if ((new_jvms = cg->generate(jvms)) == NULL) {
541 guarantee(failing(), "call failed to generate: calls should work"); 541 guarantee(failing(), "call failed to generate: calls should work");
542 return; 542 return;
543 } 543 }
544 } 544 }
545 545

mercurial