[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
Fri May 29 11:00:46 GMT 2020
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <firstname.lastname@example.org>:
Author: Richard Biener <email@example.com>
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 <firstname.lastname@example.org>
* tree-vectorizer.h (_slp_tree::representative): Add.
* tree-vect-loop.c (vectorizable_reduction): Adjust SLP
(vectorizable_live_operation): Use the representative to
attach the reduction info to.
* tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
(slp_copy_subtree): Copy it.
(vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts.
(vect_slp_analyze_node_operations_1): Pass the representative
(vect_schedule_slp_instance): Pass the representative to
* gcc.dg/vect/pr95272.c: New testcase.
More information about the Gcc-bugs