src/share/vm/opto/callnode.cpp

Print this page
rev 3898 : 8005031: Some cleanup in c2 to prepare for incremental inlining support
Summary: collection of small changes to prepare for incremental inlining.
Reviewed-by:


 734           for (DUIterator_Fast kmax, k = cn->fast_outs(kmax); k < kmax; k++) {
 735             cpn = cn->fast_out(k)->as_Proj();
 736             assert(cpn->is_CatchProj(), "must be a CatchProjNode");
 737             if (cpn->_con == CatchProjNode::fall_through_index)
 738               projs->fallthrough_catchproj = cpn;
 739             else {
 740               assert(cpn->_con == CatchProjNode::catch_all_index, "must be correct index.");
 741               projs->catchall_catchproj = cpn;
 742             }
 743           }
 744         }
 745         break;
 746       }
 747     case TypeFunc::I_O:
 748       if (pn->_is_io_use)
 749         projs->catchall_ioproj = pn;
 750       else
 751         projs->fallthrough_ioproj = pn;
 752       for (DUIterator j = pn->outs(); pn->has_out(j); j++) {
 753         Node* e = pn->out(j);
 754         if (e->Opcode() == Op_CreateEx && e->in(0)->is_CatchProj()) {
 755           assert(projs->exobj == NULL, "only one");
 756           projs->exobj = e;
 757         }
 758       }
 759       break;
 760     case TypeFunc::Memory:
 761       if (pn->_is_io_use)
 762         projs->catchall_memproj = pn;
 763       else
 764         projs->fallthrough_memproj = pn;
 765       break;
 766     case TypeFunc::Parms:
 767       projs->resproj = pn;
 768       break;
 769     default:
 770       assert(false, "unexpected projection from allocation node.");
 771     }
 772   }
 773 
 774   // The resproj may not exist because the result couuld be ignored




 734           for (DUIterator_Fast kmax, k = cn->fast_outs(kmax); k < kmax; k++) {
 735             cpn = cn->fast_out(k)->as_Proj();
 736             assert(cpn->is_CatchProj(), "must be a CatchProjNode");
 737             if (cpn->_con == CatchProjNode::fall_through_index)
 738               projs->fallthrough_catchproj = cpn;
 739             else {
 740               assert(cpn->_con == CatchProjNode::catch_all_index, "must be correct index.");
 741               projs->catchall_catchproj = cpn;
 742             }
 743           }
 744         }
 745         break;
 746       }
 747     case TypeFunc::I_O:
 748       if (pn->_is_io_use)
 749         projs->catchall_ioproj = pn;
 750       else
 751         projs->fallthrough_ioproj = pn;
 752       for (DUIterator j = pn->outs(); pn->has_out(j); j++) {
 753         Node* e = pn->out(j);
 754         if (e->Opcode() == Op_CreateEx && e->in(0)->is_CatchProj() && e->outcnt() > 0) {
 755           assert(projs->exobj == NULL, "only one");
 756           projs->exobj = e;
 757         }
 758       }
 759       break;
 760     case TypeFunc::Memory:
 761       if (pn->_is_io_use)
 762         projs->catchall_memproj = pn;
 763       else
 764         projs->fallthrough_memproj = pn;
 765       break;
 766     case TypeFunc::Parms:
 767       projs->resproj = pn;
 768       break;
 769     default:
 770       assert(false, "unexpected projection from allocation node.");
 771     }
 772   }
 773 
 774   // The resproj may not exist because the result couuld be ignored