This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/57558] Loop not vectorized if iteration count could be infinite


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57558

--- Comment #5 from amker at gcc dot gnu.org ---
Author: amker
Date: Fri Jul 29 15:48:25 2016
New Revision: 238877

URL: https://gcc.gnu.org/viewcvs?rev=238877&root=gcc&view=rev
Log:
        PR tree-optimization/57558
        * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
        function.
        (vect_loop_versioning): Support versioning with niter assumptions.
        * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
        (vect_get_loop_niters): New parameter.  Reimplement to support
        assumptions in loop niter info.
        (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
        (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
        (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
        Support loop versioning for niters.
        * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
        (vect_free_loop_info_assumptions): New function.
        (vectorize_loops): Free loop niter info for loops with flag
        LOOP_F_ASSUMPTIONS set if vectorization failed.
        * tree-vectorizer.h (struct _loop_vec_info): New field
        num_iters_assumptions.
        (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
        (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
        (LOOP_REQUIRES_VERSIONING): New macro.
        (vect_free_loop_info_assumptions): New decl.

        gcc/testsuite
        PR tree-optimization/57558
        * gcc.dg/vect/pr57558-1.c: New test.
        * gcc.dg/vect/pr57558-2.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/vect/pr57558-1.c
    trunk/gcc/testsuite/gcc.dg/vect/pr57558-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vect-loop-manip.c
    trunk/gcc/tree-vect-loop.c
    trunk/gcc/tree-vectorizer.c
    trunk/gcc/tree-vectorizer.h

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]