1153 } |
1153 } |
1154 const Type* this_type = bottom_type(); |
1154 const Type* this_type = bottom_type(); |
1155 for (DUIterator_Fast imax, i = region->fast_outs(imax); i < imax; i++) { |
1155 for (DUIterator_Fast imax, i = region->fast_outs(imax); i < imax; i++) { |
1156 Node* phi = region->fast_out(i); |
1156 Node* phi = region->fast_out(i); |
1157 if (phi->is_Phi() && phi != mem && |
1157 if (phi->is_Phi() && phi != mem && |
1158 phi->as_Phi()->is_same_inst_field(this_type, this_iid, this_index, this_offset)) { |
1158 phi->as_Phi()->is_same_inst_field(this_type, (int)mem->_idx, this_iid, this_index, this_offset)) { |
1159 return phi; |
1159 return phi; |
1160 } |
1160 } |
1161 } |
1161 } |
1162 } |
1162 } |
1163 |
1163 |
1398 if (!t_oop->is_known_instance() && load_boxed_values) { |
1398 if (!t_oop->is_known_instance() && load_boxed_values) { |
1399 // Use _idx of address base for boxed values. |
1399 // Use _idx of address base for boxed values. |
1400 this_iid = base->_idx; |
1400 this_iid = base->_idx; |
1401 } |
1401 } |
1402 PhaseIterGVN* igvn = phase->is_IterGVN(); |
1402 PhaseIterGVN* igvn = phase->is_IterGVN(); |
1403 Node* phi = new (C) PhiNode(region, this_type, NULL, this_iid, this_index, this_offset); |
1403 Node* phi = new (C) PhiNode(region, this_type, NULL, mem->_idx, this_iid, this_index, this_offset); |
1404 for (uint i = 1; i < region->req(); i++) { |
1404 for (uint i = 1; i < region->req(); i++) { |
1405 Node* x; |
1405 Node* x; |
1406 Node* the_clone = NULL; |
1406 Node* the_clone = NULL; |
1407 if (region->in(i) == C->top()) { |
1407 if (region->in(i) == C->top()) { |
1408 x = C->top(); // Dead path? Use a dead data op |
1408 x = C->top(); // Dead path? Use a dead data op |