aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-09-27 13:19:58 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-09-27 13:19:58 +0000
commit29f26978866f32bddd656847441a3a953ffd7a21 (patch)
treeab0278dd3939f70a41b9ab2739ff86508ebefc0d /gcc/tree-vectorizer.h
parent67cb34efd8696f2710d8f818d4e25da818a9bff9 (diff)
downloadgcc-29f26978866f32bddd656847441a3a953ffd7a21.zip
gcc-29f26978866f32bddd656847441a3a953ffd7a21.tar.gz
gcc-29f26978866f32bddd656847441a3a953ffd7a21.tar.bz2
tree-vectorizer.h (_stmt_vec_info::reduc_fn): New.
2019-09-27 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New. (STMT_VINFO_REDUC_FN): Likewise. * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize STMT_VINFO_REDUC_FN. * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX for condition reductions. (vect_create_epilog_for_reduction): Compute all required state from the stmt to be vectorized. (vectorizable_reduction): Simplify vect_create_epilog_for_reduction invocation and remove then dead code. For single def-use chains record only a single vector stmt. From-SVN: r276180
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index 1ab4af7..d9171c0 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -951,6 +951,8 @@ public:
/* The original reduction code, to be used in the epilogue. */
enum tree_code reduc_code;
+ /* An internal function we should use in the epilogue. */
+ internal_fn reduc_fn;
/* On a stmt participating in the reduction the index of the operand
on the reduction SSA cycle. */
@@ -1079,6 +1081,7 @@ STMT_VINFO_BB_VINFO (stmt_vec_info stmt_vinfo)
#define STMT_VINFO_NUM_SLP_USES(S) (S)->num_slp_uses
#define STMT_VINFO_REDUC_TYPE(S) (S)->reduc_type
#define STMT_VINFO_REDUC_CODE(S) (S)->reduc_code
+#define STMT_VINFO_REDUC_FN(S) (S)->reduc_fn
#define STMT_VINFO_REDUC_DEF(S) (S)->reduc_def
#define STMT_VINFO_SLP_VECT_ONLY(S) (S)->slp_vect_only_p