src/share/vm/opto/loopopts.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/share/vm/opto/loopopts.cpp
src/share/vm/opto/loopopts.cpp
Print this page
rev 10203 : 8149543: range check CastII nodes should not be split through Phi
Summary: splitting range check CastIIs through loop induction Phi prevents further optimizations
Reviewed-by:
*** 45,54 ****
--- 45,61 ----
// ConvI2L may have type information on it which is unsafe to push up
// so disable this for now
return NULL;
}
+ // Splitting range check CastIIs through a loop induction Phi can
+ // cause new Phis to be created that are left unrelated to the loop
+ // induction Phi and prevent optimizations (vectorization)
+ if (n->Opcode() == Op_CastII && n->as_CastII()->has_range_check()) {
+ return NULL;
+ }
+
int wins = 0;
assert(!n->is_CFG(), "");
assert(region->is_Region(), "");
const Type* type = n->bottom_type();
src/share/vm/opto/loopopts.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File