]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-vect-slp.c
re PR tree-optimization/41881 (Complete unrolling (inner) versus vectorization of...
authorIra Rosen <ira.rosen@linaro.org>
Wed, 18 May 2011 11:27:51 +0000 (11:27 +0000)
committerIra Rosen <irar@gcc.gnu.org>
Wed, 18 May 2011 11:27:51 +0000 (11:27 +0000)
commitb010117a6c6ee5bc80e0b7d57df2533d2c813763
tree63d6259a36cf4a5e8b5a741f419adf748426312f
parente14c1050008ecece4bff253a54eac0f15a6467bb
re PR tree-optimization/41881 (Complete unrolling (inner) versus vectorization of reduction)

        PR tree-optimization/41881
        * tree-vectorizer.h (struct _loop_vec_info): Add new field
        reduction_chains along with a macro for its access.
        * tree-vect-loop.c (new_loop_vec_info): Initialize
        reduction chains.
        (destroy_loop_vec_info): Free reduction chains.
        (vect_analyze_loop_2): Return false if
        vect_analyze_slp() returns false.
        (vect_is_slp_reduction): New function.
        (vect_is_simple_reduction_1): Call
        vect_is_slp_reduction.
        (vect_create_epilog_for_reduction): Support SLP
        reduction chains.
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
        different definition types for reduction chains.
        (vect_supported_load_permutation_p): Don't allow
        permutations for reduction chains.
        (vect_analyze_slp_instance): Support reduction chains.
        (vect_analyze_slp): Try to build SLP instance from
        reduction chains.
        (vect_get_constant_vectors):  Handle reduction chains.
        (vect_schedule_slp_instance): Mark the first statement
        of the reduction chain as reduction.

From-SVN: r173856
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/O3-pr41881.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c [new file with mode: 0644]
gcc/tree-vect-loop.c
gcc/tree-vect-slp.c
gcc/tree-vectorizer.h