[Bug tree-optimization/95272] ice in vectorizable_reduction, at tree-vect-loop.c:6197 since r11-564-g79f0451c67e8ed56

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri May 29 11:00:46 GMT 2020


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

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

https://gcc.gnu.org/g:c735929a2503a7d03ac4739bba5b25336bf954c3

commit r11-718-gc735929a2503a7d03ac4739bba5b25336bf954c3
Author: Richard Biener <rguenther@suse.de>
Date:   Fri May 29 12:00:00 2020 +0200

    tree-optimization/95272 - add SLP_TREE_REPRESENTATIVE

    This adds SLP_TREE_REPRESENTATIVE - a representative stmt-info that
    is used by SLP analysis and code generation.  This avoids the need
    for the hack in vect_slp_rearrange_stmts which previously avoided
    to re-arrange stmts that might not have been isomorphic because
    of operand swapping.  It also plays nice with future directions of SLP
    and for the forseeable future is easier than replicating more and
    more info in the SLP node as long as non-SLP is in-tree.

    2020-05-29  Richard Biener  <rguenther@suse.de>

            PR tree-optimization/95272
            * tree-vectorizer.h (_slp_tree::representative): Add.
            (SLP_TREE_REPRESENTATIVE): Likewise.
            * tree-vect-loop.c (vectorizable_reduction): Adjust SLP
            node gathering.
            (vectorizable_live_operation): Use the representative to
            attach the reduction info to.
            * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
            SLP_TREE_REPRESENTATIVE.
            (vect_create_new_slp_node): Likewise.
            (slp_copy_subtree): Copy it.
            (vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts.
            (vect_slp_analyze_node_operations_1): Pass the representative
            to vect_analyze_stmt.
            (vect_schedule_slp_instance): Pass the representative to
            vect_transform_stmt.

            * gcc.dg/vect/pr95272.c: New testcase.


More information about the Gcc-bugs mailing list