]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-vectorizer.h
Add LOOP_VINFO_MAX_VECT_FACTOR
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Sep 2017 16:35:39 +0000 (16:35 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 Sep 2017 16:35:39 +0000 (16:35 +0000)
commit4a85c0b16ef3722655012f596b7e3e7e272eeb56
tree55832f96a9e8fb31f553b1284c5fdc4d0dac5104
parentfec8b6d03d5fa633dd60d8af7f7adebf1978a28b
Add LOOP_VINFO_MAX_VECT_FACTOR

Epilogue vectorisation uses the vectorisation factor of the main loop
as the maximum vectorisation factor allowed for correctness.  That makes
sense as a conservatively correct value, since the chosen vectorisation
factor will be strictly less than that anyway.  However, once the VF
itself becomes variable, it's easier to carry across the original
maximum VF instead.

2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
(LOOP_VINFO_MAX_VECT_FACTOR): New macro.
(LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
(LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
accordingly.
* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
max_vectorization_factor.
(vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@252766 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/tree-vect-data-refs.c
gcc/tree-vect-loop.c
gcc/tree-vectorizer.h