< prev index next >
src/share/vm/opto/superword.cpp
Print this page
*** 3341,3350 ****
--- 3341,3355 ----
_scale = 1 << n->in(2)->get_int();
NOT_PRODUCT(_tracer.scaled_iv_6(n, _scale);)
return true;
}
} else if (opc == Op_ConvI2L) {
+ if (n->in(1)->Opcode() == Op_CastII &&
+ n->in(1)->as_CastII()->has_range_check()) {
+ // Skip range check dependent CastII nodes
+ n = n->in(1);
+ }
if (scaled_iv_plus_offset(n->in(1))) {
NOT_PRODUCT(_tracer.scaled_iv_7(n);)
return true;
}
} else if (opc == Op_LShiftL) {
*** 3435,3444 ****
--- 3440,3455 ----
}
}
if (invariant(n)) {
if (opc == Op_ConvI2L) {
n = n->in(1);
+ if (n->Opcode() == Op_CastII &&
+ n->as_CastII()->has_range_check()) {
+ // Skip range check dependent CastII nodes
+ assert(invariant(n), "sanity");
+ n = n->in(1);
+ }
}
if (n->bottom_type()->isa_int()) {
_negate_invar = negate;
_invar = n;
NOT_PRODUCT(_tracer.offset_plus_k_10(n, _invar, _negate_invar, _offset);)
< prev index next >