< 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 >