comparison src/share/vm/opto/superword.cpp @ 23872:94ec11846b18 jdk8u74-b32

6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type Summary: Emit CastII to make narrow ConvI2L dependent on the corresponding range check. Reviewed-by: kvn, roland
author thartmann
date Wed, 27 Jan 2016 09:02:51 +0100
parents c1c199dde5c9
children f13e777eb255
comparison
equal deleted inserted replaced
23860:1c7a0413e1f3 23872:94ec11846b18
2386 if (n->in(1) == iv() && n->in(2)->is_Con()) { 2386 if (n->in(1) == iv() && n->in(2)->is_Con()) {
2387 _scale = 1 << n->in(2)->get_int(); 2387 _scale = 1 << n->in(2)->get_int();
2388 return true; 2388 return true;
2389 } 2389 }
2390 } else if (opc == Op_ConvI2L) { 2390 } else if (opc == Op_ConvI2L) {
2391 if (n->in(1)->Opcode() == Op_CastII &&
2392 n->in(1)->as_CastII()->has_range_check()) {
2393 // Skip range check dependent CastII nodes
2394 n = n->in(1);
2395 }
2391 if (scaled_iv_plus_offset(n->in(1))) { 2396 if (scaled_iv_plus_offset(n->in(1))) {
2392 return true; 2397 return true;
2393 } 2398 }
2394 } else if (opc == Op_LShiftL) { 2399 } else if (opc == Op_LShiftL) {
2395 if (!has_iv() && _invar == NULL) { 2400 if (!has_iv() && _invar == NULL) {