diff options
author | Ira Rosen <ira.rosen@linaro.org> | 2011-11-03 08:44:35 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2011-11-03 08:44:35 +0000 |
commit | d092494cf3665e8c1d7725fa51c48ecd6023d585 (patch) | |
tree | 4a3e5280c77376f6cbc8b2adb845491b1fb646f8 /gcc/tree-vect-loop.c | |
parent | d2a7d041b640b8a28d82de1155a5b166d1682d48 (diff) | |
download | gcc-d092494cf3665e8c1d7725fa51c48ecd6023d585.zip gcc-d092494cf3665e8c1d7725fa51c48ecd6023d585.tar.gz gcc-d092494cf3665e8c1d7725fa51c48ecd6023d585.tar.bz2 |
re PR tree-optimization/50912 (gimple assertion failure at gimple.h:1940 with -msse2)
PR tree-optimization/50912
* tree-vectorizer.h (slp_void_p): New.
(struct _slp_tree): Replace left and right with children. Update
documentation.
(struct _slp_oprnd_info): New.
(vect_get_vec_defs): Declare.
(vect_get_slp_defs): Update arguments.
* tree-vect-loop.c (vect_create_epilog_for_reduction): Call
vect_get_vec_defs instead of vect_get_slp_defs.
(vectorizable_reduction): Likewise.
* tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
Update call to vect_get_slp_defs.
(vectorizable_conversion): Update call to vect_get_vec_defs.
(vectorizable_assignment, vectorizable_shift,
vectorizable_operation): Likewise.
(vectorizable_type_demotion): Call vect_get_vec_defs instead of
vect_get_slp_defs.
(vectorizable_type_promotion, vectorizable_store): Likewise.
(vect_analyze_stmt): Fix typo.
* tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
(vect_print_slp_tree, vect_mark_slp_stmts,
vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
vect_schedule_slp_instance): Likewise.
(vect_create_new_slp_node): New.
(vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
(vect_get_and_check_slp_defs): Pass information about defs using
oprnds_info, allow any number of operands.
(vect_build_slp_tree): Likewise. Update calls to
vect_get_and_check_slp_defs. Fix comments.
(vect_analyze_slp_instance): Move node creation to
vect_create_new_slp_node.
(vect_get_slp_defs): Allow any number of operands.
From-SVN: r180819
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index a04099f..1598899 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -3537,8 +3537,8 @@ vect_create_epilog_for_reduction (VEC (tree, heap) *vect_defs, gimple stmt, /* Get the loop-entry arguments. */ if (slp_node) - vect_get_slp_defs (reduction_op, NULL_TREE, slp_node, &vec_initial_defs, - NULL, reduc_index); + vect_get_vec_defs (reduction_op, NULL_TREE, stmt, &vec_initial_defs, + NULL, slp_node, reduc_index); else { vec_initial_defs = VEC_alloc (tree, heap, 1); @@ -4792,8 +4792,8 @@ vectorizable_reduction (gimple stmt, gimple_stmt_iterator *gsi, } if (slp_node) - vect_get_slp_defs (op0, op1, slp_node, &vec_oprnds0, &vec_oprnds1, - -1); + vect_get_vec_defs (op0, op1, stmt, &vec_oprnds0, &vec_oprnds1, + slp_node, -1); else { loop_vec_def0 = vect_get_vec_def_for_operand (ops[!reduc_index], |