equal
deleted
inserted
replaced
93 void PhaseCFG::replace_block_proj_ctrl( Node *n ) { |
93 void PhaseCFG::replace_block_proj_ctrl( Node *n ) { |
94 const Node *in0 = n->in(0); |
94 const Node *in0 = n->in(0); |
95 assert(in0 != NULL, "Only control-dependent"); |
95 assert(in0 != NULL, "Only control-dependent"); |
96 const Node *p = in0->is_block_proj(); |
96 const Node *p = in0->is_block_proj(); |
97 if (p != NULL && p != n) { // Control from a block projection? |
97 if (p != NULL && p != n) { // Control from a block projection? |
98 assert(!n->pinned() || n->is_MachConstantBase() || n->is_SafePointScalarObject(), "only pinned MachConstantBase or SafePointScalarObject node is expected here"); |
98 assert(!n->pinned() || n->is_MachConstantBase(), "only pinned MachConstantBase node is expected here"); |
99 // Find trailing Region |
99 // Find trailing Region |
100 Block *pb = _bbs[in0->_idx]; // Block-projection already has basic block |
100 Block *pb = _bbs[in0->_idx]; // Block-projection already has basic block |
101 uint j = 0; |
101 uint j = 0; |
102 if (pb->_num_succs != 1) { // More then 1 successor? |
102 if (pb->_num_succs != 1) { // More then 1 successor? |
103 // Search for successor |
103 // Search for successor |