On 10/23/2017 11:25 AM, Richard Sandiford wrote: > This patch splits the loop versioning threshold out from the > cost model threshold so that the former can become a poly_uint64. > We still use a single test to enforce both limits where possible. > > > 2017-10-23 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > gcc/ > * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold > field. > (LOOP_VINFO_VERSIONING_THRESHOLD): New macro > (vect_loop_versioning): Take the loop versioning threshold as a > separate parameter. > * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. > * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize > versioning_threshold. > (vect_analyze_loop_2): Compute the loop versioning threshold > whenever loop versioning is needed, and store it in the new > field rather than combining it with the cost model threshold. > (vect_transform_loop): Update call to vect_loop_versioning. > Try to combine the loop versioning and cost thresholds here. So you dropped the tests for PEELING_FOR_GAPS and PEELING_FOR_NITER in vect_analyze_loop_2. Was that intentional?
Otherwise it looks fine. If the drop was intentional, then OK as-is. jeff