diff options
author | Richard Biener <rguenther@suse.de> | 2020-03-16 11:47:00 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-05-05 09:48:03 +0200 |
commit | 308bc496884706af4b3077171cbac684c7a6f7c6 (patch) | |
tree | c7fb9f12b283cb185bd33cf5b3fcd34e2d56f10c /gcc/targhooks.c | |
parent | 228646a64fc1013f9133159d2e7b05fdd9972772 (diff) | |
download | gcc-308bc496884706af4b3077171cbac684c7a6f7c6.zip gcc-308bc496884706af4b3077171cbac684c7a6f7c6.tar.gz gcc-308bc496884706af4b3077171cbac684c7a6f7c6.tar.bz2 |
add vec_info * parameters where needed
Soonish we'll get SLP nodes which have no corresponding scalar
stmt and thus not stmt_vec_info and thus no way to get back to
the associated vec_info. This patch makes the vec_info available
as part of the APIs instead of putting in that back-pointer into
the leaf data structures.
2020-05-05 Richard Biener <rguenther@suse.de>
* tree-vectorizer.h (_stmt_vec_info::vinfo): Remove.
(STMT_VINFO_LOOP_VINFO): Likewise.
(STMT_VINFO_BB_VINFO): Likewise.
* tree-vect-data-refs.c: Adjust for the above, adding vec_info *
parameters and adjusting calls.
* tree-vect-loop-manip.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* target.def (add_stmt_cost): Add vec_info * parameter.
* target.h (stmt_in_inner_loop_p): Likewise.
* targhooks.c (default_add_stmt_cost): Adjust.
* doc/tm.texi: Re-generate.
* config/aarch64/aarch64.c (aarch64_extending_load_p): Add
vec_info * parameter and adjust.
(aarch64_sve_adjust_stmt_cost): Likewise.
(aarch64_add_stmt_cost): Likewise.
* config/arm/arm.c (arm_add_stmt_cost): Likewise.
* config/i386/i386.c (ix86_add_stmt_cost): Likewise.
* config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
Diffstat (limited to 'gcc/targhooks.c')
-rw-r--r-- | gcc/targhooks.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 7cb04f3..4caab8c 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1348,7 +1348,8 @@ default_init_cost (class loop *loop_info ATTRIBUTE_UNUSED) it into the cost specified by WHERE, and returns the cost added. */ unsigned -default_add_stmt_cost (void *data, int count, enum vect_cost_for_stmt kind, +default_add_stmt_cost (class vec_info *vinfo, void *data, int count, + enum vect_cost_for_stmt kind, class _stmt_vec_info *stmt_info, int misalign, enum vect_cost_model_location where) { @@ -1361,7 +1362,8 @@ default_add_stmt_cost (void *data, int count, enum vect_cost_for_stmt kind, /* Statements in an inner loop relative to the loop being vectorized are weighted more heavily. The value here is arbitrary and could potentially be improved with analysis. */ - if (where == vect_body && stmt_info && stmt_in_inner_loop_p (stmt_info)) + if (where == vect_body && stmt_info + && stmt_in_inner_loop_p (vinfo, stmt_info)) count *= 50; /* FIXME. */ retval = (unsigned) (count * stmt_cost); |