diff options
author | Ira Rosen <irar@il.ibm.com> | 2010-10-21 13:36:56 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2010-10-21 13:36:56 +0000 |
commit | 9dc3f7de0d62dfaf42457c92ab5295a03aa1a72b (patch) | |
tree | 300d18c5421de122b062f8b293724c24ba1cf14b /gcc/tree-vectorizer.h | |
parent | 027dbed8279f0312e8d01852728c5d8141ca5e33 (diff) | |
download | gcc-9dc3f7de0d62dfaf42457c92ab5295a03aa1a72b.zip gcc-9dc3f7de0d62dfaf42457c92ab5295a03aa1a72b.tar.gz gcc-9dc3f7de0d62dfaf42457c92ab5295a03aa1a72b.tar.bz2 |
re PR tree-optimization/46049 (ICE: in expand_widen_pattern_expr, at optabs.c:522 with -ftree-vectorize)
PR tree-optimization/46049
PR tree-optimization/46052
* tree-vectorizer.h (enum stmt_vec_info_type): Add new value for
shift.
(vect_get_slp_defs): Add arguments.
* tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
operands to vect_get_slp_defs.
(vectorizable_reduction): Fix comment, pass scalar operands to
vect_get_slp_defs.
* tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
type to determine number of units in the created vector.
(vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
(vectorizable_conversion): Fix comment.
(vectorizable_shift): New function.
(vectorizable_operation): Move code that handles shifts to
vectorizable_shift.
(vectorizable_type_demotion): Fix comment, pass scalar operands to
vect_get_slp_defs.
(vectorizable_type_promotion, vectorizable_store): Likewise.
(vectorizable_condition): Fix comment.
(vect_analyze_stmt): Call vectorizable_shift.
(vect_transform_stmt): Likewise.
* tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
Use it as the operand to create vectors for, except reduction
initial definition and store. Use operands type.
(vect_get_slp_defs): Add new arguments. Pass them to
vect_get_constant_vectors.
From-SVN: r165777
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r-- | gcc/tree-vectorizer.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index 389e80a..f2a5889 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -353,6 +353,7 @@ enum stmt_vec_info_type { undef_vec_info_type = 0, load_vec_info_type, store_vec_info_type, + shift_vec_info_type, op_vec_info_type, call_vec_info_type, assignment_vec_info_type, @@ -884,7 +885,7 @@ extern void vect_update_slp_costs_according_to_vf (loop_vec_info); extern bool vect_analyze_slp (loop_vec_info, bb_vec_info); extern void vect_make_slp_decision (loop_vec_info); extern void vect_detect_hybrid_slp (loop_vec_info); -extern void vect_get_slp_defs (slp_tree, VEC (tree,heap) **, +extern void vect_get_slp_defs (tree, tree, slp_tree, VEC (tree,heap) **, VEC (tree,heap) **, int); extern LOC find_bb_location (basic_block); extern bb_vec_info vect_slp_analyze_bb (basic_block); |