equal
deleted
inserted
replaced
223 if (progress != NULL) { |
223 if (progress != NULL) { |
224 return progress; |
224 return progress; |
225 } |
225 } |
226 |
226 |
227 // Similar to ConvI2LNode::Ideal() for the same reasons |
227 // Similar to ConvI2LNode::Ideal() for the same reasons |
228 if (can_reshape && !phase->C->major_progress()) { |
228 // Do not narrow the type of range check dependent CastIINodes to |
|
229 // avoid corruption of the graph if a CastII is replaced by TOP but |
|
230 // the corresponding range check is not removed. |
|
231 if (can_reshape && !_range_check_dependency && !phase->C->major_progress()) { |
229 const TypeInt* this_type = this->type()->is_int(); |
232 const TypeInt* this_type = this->type()->is_int(); |
230 const TypeInt* in_type = phase->type(in(1))->isa_int(); |
233 const TypeInt* in_type = phase->type(in(1))->isa_int(); |
231 if (in_type != NULL && this_type != NULL && |
234 if (in_type != NULL && this_type != NULL && |
232 (in_type->_lo != this_type->_lo || |
235 (in_type->_lo != this_type->_lo || |
233 in_type->_hi != this_type->_hi)) { |
236 in_type->_hi != this_type->_hi)) { |