src/share/vm/opto/graphKit.cpp

changeset 4357
ad5dd04754ee
parent 4315
2aff40cb4703
child 4364
2d6c433b1f38
equal deleted inserted replaced
4356:18d56ca3e901 4357:ad5dd04754ee
1769 1769
1770 // Find all the needed outputs of this call 1770 // Find all the needed outputs of this call
1771 CallProjections callprojs; 1771 CallProjections callprojs;
1772 call->extract_projections(&callprojs, true); 1772 call->extract_projections(&callprojs, true);
1773 1773
1774 Node* init_mem = call->in(TypeFunc::Memory);
1775 Node* final_mem = final_state->in(TypeFunc::Memory);
1776 Node* final_ctl = final_state->in(TypeFunc::Control);
1777 Node* final_io = final_state->in(TypeFunc::I_O);
1778
1774 // Replace all the old call edges with the edges from the inlining result 1779 // Replace all the old call edges with the edges from the inlining result
1775 C->gvn_replace_by(callprojs.fallthrough_catchproj, final_state->in(TypeFunc::Control)); 1780 if (callprojs.fallthrough_catchproj != NULL) {
1776 C->gvn_replace_by(callprojs.fallthrough_memproj, final_state->in(TypeFunc::Memory)); 1781 C->gvn_replace_by(callprojs.fallthrough_catchproj, final_ctl);
1777 C->gvn_replace_by(callprojs.fallthrough_ioproj, final_state->in(TypeFunc::I_O)); 1782 }
1778 Node* final_mem = final_state->in(TypeFunc::Memory); 1783 if (callprojs.fallthrough_memproj != NULL) {
1784 C->gvn_replace_by(callprojs.fallthrough_memproj, final_mem);
1785 }
1786 if (callprojs.fallthrough_ioproj != NULL) {
1787 C->gvn_replace_by(callprojs.fallthrough_ioproj, final_io);
1788 }
1779 1789
1780 // Replace the result with the new result if it exists and is used 1790 // Replace the result with the new result if it exists and is used
1781 if (callprojs.resproj != NULL && result != NULL) { 1791 if (callprojs.resproj != NULL && result != NULL) {
1782 C->gvn_replace_by(callprojs.resproj, result); 1792 C->gvn_replace_by(callprojs.resproj, result);
1783 } 1793 }

mercurial