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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:0682a32c026f1e246eb07bb8066abca4636f01d8

commit r14-2281-g0682a32c026f1e246eb07bb8066abca4636f01d8
Author: Richard Biener <rguent...@suse.de>
Date:   Mon Jul 3 13:59:33 2023 +0200

    tree-optimization/110310 - move vector epilogue disabling to analysis phase

    The following removes late deciding to elide vectorized epilogues to
    the analysis phase and also avoids altering the epilogues niter.
    The costing part from vect_determine_partial_vectors_and_peeling is
    moved to vect_analyze_loop_costing where we use the main loop
    analysis to constrain the epilogue scalar iterations.

    I have not tried to integrate this with vect_known_niters_smaller_than_vf.

    It seems the for_epilogue_p parameter in
    vect_determine_partial_vectors_and_peeling is largely useless and
    we could compute that in the function itself.

            PR tree-optimization/110310
            * tree-vect-loop.cc (vect_determine_partial_vectors_and_peeling):
            Move costing part ...
            (vect_analyze_loop_costing): ... here.  Integrate better
            estimate for epilogues from ...
            (vect_analyze_loop_2): Call
vect_determine_partial_vectors_and_peeling
            with actual epilogue status.
            * tree-vect-loop-manip.cc (vect_do_peeling): ... here and
            avoid cancelling epilogue vectorization.
            (vect_update_epilogue_niters): Remove.  No longer update
            epilogue LOOP_VINFO_NITERS.

            * gcc.target/i386/pr110310.c: New testcase.
            * gcc.dg/vect/slp-perm-12.c: Disable epilogue vectorization.

Reply via email to