Fix nb_iterations_estimate calculation in tree-vect-loop.c
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 16 Nov 2016 10:18:25 +0000 (10:18 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 16 Nov 2016 10:18:25 +0000 (10:18 +0000)
commit29220523c10fec10ba3f3de817257837611b4ec0
treef19822b99c7707ec68ef459f828bba2f372da93f
parent3623815a51c6c546a550c703d393f3335daa2c2c
Fix nb_iterations_estimate calculation in tree-vect-loop.c

vect_transform_loop has to reduce three iteration counts by
the vectorisation factor: nb_iterations_upper_bound,
nb_iterations_likely_upper_bound and nb_iterations_estimate.
All three are latch execution counts rather than loop body
execution counts.  The calculations were taking that into
account for the first two, but not for nb_iterations_estimate.

This patch updates the way the calculations are done to fix
this and to add a bit more commentary about what is going on.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

* tree-vect-loop.c (vect_transform_loop): Protect the updates of
all three iteration counts with an any_* test.  Use a single update
for each count.  Fix the calculation of nb_iterations_estimate.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242475
gcc/ChangeLog
gcc/tree-vect-loop.c