Cap niter_for_unrolled_loop to upper bound
commit10de1374e1bd9a06ff0dd2a54a9732a7096eeacb
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 May 2017 11:37:05 +0000 (4 11:37 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 May 2017 11:37:05 +0000 (4 11:37 +0000)
tree9e4572707089e2b42a80ecb24d4d3b00ae89d8a3
parent2a9d6f178af732cd54a5fec05e3f9cb6664edc3a
Cap niter_for_unrolled_loop to upper bound

For the reasons explained in PR77536, niter_for_unrolled_loop assumes 5
iterations in the absence of profiling information, although it doesn't
increase beyond the estimate for the original loop.  This left a hole in
which the new estimate could be less than the old one but still greater
than the limit imposed by CEIL (nb_iterations_upper_bound, unroll factor).

2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
to explain the use of truncating division.  Cap the number of
iterations to the maximum given by nb_iterations_upper_bound,
if defined.

gcc/testsuite/
* gcc.dg/vect/vect-profile-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@247591 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-profile-1.c [new file with mode: 0644]
gcc/tree-ssa-loop-manip.c