src/share/vm/opto/graphKit.cpp

changeset 4357
ad5dd04754ee
parent 4315
2aff40cb4703
child 4364
2d6c433b1f38
     1.1 --- a/src/share/vm/opto/graphKit.cpp	Mon Dec 17 11:00:22 2012 -0800
     1.2 +++ b/src/share/vm/opto/graphKit.cpp	Tue Dec 18 14:55:25 2012 +0100
     1.3 @@ -1771,11 +1771,21 @@
     1.4    CallProjections callprojs;
     1.5    call->extract_projections(&callprojs, true);
     1.6  
     1.7 +  Node* init_mem = call->in(TypeFunc::Memory);
     1.8 +  Node* final_mem = final_state->in(TypeFunc::Memory);
     1.9 +  Node* final_ctl = final_state->in(TypeFunc::Control);
    1.10 +  Node* final_io = final_state->in(TypeFunc::I_O);
    1.11 +
    1.12    // Replace all the old call edges with the edges from the inlining result
    1.13 -  C->gvn_replace_by(callprojs.fallthrough_catchproj, final_state->in(TypeFunc::Control));
    1.14 -  C->gvn_replace_by(callprojs.fallthrough_memproj,   final_state->in(TypeFunc::Memory));
    1.15 -  C->gvn_replace_by(callprojs.fallthrough_ioproj,    final_state->in(TypeFunc::I_O));
    1.16 -  Node* final_mem = final_state->in(TypeFunc::Memory);
    1.17 +  if (callprojs.fallthrough_catchproj != NULL) {
    1.18 +    C->gvn_replace_by(callprojs.fallthrough_catchproj, final_ctl);
    1.19 +  }
    1.20 +  if (callprojs.fallthrough_memproj != NULL) {
    1.21 +    C->gvn_replace_by(callprojs.fallthrough_memproj,   final_mem);
    1.22 +  }
    1.23 +  if (callprojs.fallthrough_ioproj != NULL) {
    1.24 +    C->gvn_replace_by(callprojs.fallthrough_ioproj,    final_io);
    1.25 +  }
    1.26  
    1.27    // Replace the result with the new result if it exists and is used
    1.28    if (callprojs.resproj != NULL && result != NULL) {

mercurial