Mercurial > hg > graal-jvmci-8
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) { |