< prev index next >
src/share/vm/opto/ifnode.cpp
Print this page
*** 1102,1112 ****
ctrl = up_one_dom(ctrl);
}
if (ctrl == fail) {
Node* init_n = stack.node_at(1);
assert(init_n->Opcode() == Op_ConvI2L, "unexpected first node");
! Node* new_n = igvn->C->conv_I2X_index(igvn, l, array_size);
// The type of the ConvI2L may be widen and so the new
// ConvI2L may not be better than an existing ConvI2L
if (new_n != init_n) {
for (uint j = 2; j < stack.size(); j++) {
--- 1102,1113 ----
ctrl = up_one_dom(ctrl);
}
if (ctrl == fail) {
Node* init_n = stack.node_at(1);
assert(init_n->Opcode() == Op_ConvI2L, "unexpected first node");
! // Create a new narrow ConvI2L node that is dependent on the range check
! Node* new_n = igvn->C->conv_I2X_index(igvn, l, array_size, fail);
// The type of the ConvI2L may be widen and so the new
// ConvI2L may not be better than an existing ConvI2L
if (new_n != init_n) {
for (uint j = 2; j < stack.size(); j++) {
< prev index next >