< prev index next >
src/share/vm/opto/loopTransform.cpp
Print this page
*** 782,800 ****
}
}
}
int slp_max_unroll_factor = cl->slp_max_unroll();
if (cl->has_passed_slp()) {
if (slp_max_unroll_factor >= future_unroll_ct) return true;
// Normal case: loop too big
return false;
}
// Check for being too big
if (body_size > (uint)_local_loop_unroll_limit) {
! if (xors_in_loop >= 4 && body_size < (uint)LoopUnrollLimit*4) return true;
// Normal case: loop too big
return false;
}
if (cl->do_unroll_only()) {
--- 782,803 ----
}
}
}
int slp_max_unroll_factor = cl->slp_max_unroll();
+ if ((LoopMaxUnroll < slp_max_unroll_factor) && FLAG_IS_DEFAULT(LoopMaxUnroll) && UseSubwordForMaxVector) {
+ LoopMaxUnroll = slp_max_unroll_factor;
+ }
if (cl->has_passed_slp()) {
if (slp_max_unroll_factor >= future_unroll_ct) return true;
// Normal case: loop too big
return false;
}
// Check for being too big
if (body_size > (uint)_local_loop_unroll_limit) {
! if ((UseSubwordForMaxVector || xors_in_loop >= 4) && body_size < (uint)LoopUnrollLimit * 4) return true;
// Normal case: loop too big
return false;
}
if (cl->do_unroll_only()) {
< prev index next >