diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-11-14 15:05:37 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-11-14 15:05:37 +0000 |
commit | 1c84a2d25ecd4c03dde745f36a4762dd45f97c85 (patch) | |
tree | ade2b975bc48ad715b167c702ef02abc267644df /gcc/tree-vect-loop.c | |
parent | e021fb865564b62a10adb1e98f75b5ea05058047 (diff) | |
download | gcc-1c84a2d25ecd4c03dde745f36a4762dd45f97c85.zip gcc-1c84a2d25ecd4c03dde745f36a4762dd45f97c85.tar.gz gcc-1c84a2d25ecd4c03dde745f36a4762dd45f97c85.tar.bz2 |
Replace vec_info::vector_size with vec_info::vector_mode
This patch replaces vec_info::vector_size with vec_info::vector_mode,
but for now continues to use it as a way of specifying a single
vector size. This makes it easier for later patches to use
related_vector_mode instead.
2019-11-14 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vectorizer.h (vec_info::vector_size): Replace with...
(vec_info::vector_mode): ...this new field.
* tree-vect-loop.c (vect_update_vf_for_slp): Update accordingly.
(vect_analyze_loop, vect_transform_loop): Likewise.
* tree-vect-loop-manip.c (vect_do_peeling): Likewise.
* tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise.
(vect_make_slp_decision, vect_slp_bb_region): Likewise.
* tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise.
* tree-vectorizer.c (try_vectorize_loop_1): Likewise.
gcc/testsuite/
* gcc.dg/vect/vect-tail-nomask-1.c: Update expected epilogue
vectorization message.
From-SVN: r278237
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r-- | gcc/tree-vect-loop.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 77ae9f51..213d620 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -1422,8 +1422,8 @@ vect_update_vf_for_slp (loop_vec_info loop_vinfo) dump_printf_loc (MSG_NOTE, vect_location, "Loop contains SLP and non-SLP stmts\n"); /* Both the vectorization factor and unroll factor have the form - loop_vinfo->vector_size * X for some rational X, so they must have - a common multiple. */ + GET_MODE_SIZE (loop_vinfo->vector_mode) * X for some rational X, + so they must have a common multiple. */ vectorization_factor = force_common_multiple (vectorization_factor, LOOP_VINFO_SLP_UNROLLING_FACTOR (loop_vinfo)); @@ -2404,7 +2404,7 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared) " loops cannot be vectorized\n"); unsigned n_stmts = 0; - poly_uint64 autodetected_vector_size = 0; + machine_mode autodetected_vector_mode = VOIDmode; opt_loop_vec_info first_loop_vinfo = opt_loop_vec_info::success (NULL); machine_mode next_vector_mode = VOIDmode; poly_uint64 lowest_th = 0; @@ -2425,7 +2425,7 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared) gcc_checking_assert (first_loop_vinfo == NULL); return loop_vinfo; } - loop_vinfo->vector_size = GET_MODE_SIZE (next_vector_mode); + loop_vinfo->vector_mode = next_vector_mode; bool fatal = false; @@ -2434,7 +2434,7 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared) res = vect_analyze_loop_2 (loop_vinfo, fatal, &n_stmts); if (mode_i == 0) - autodetected_vector_size = loop_vinfo->vector_size; + autodetected_vector_mode = loop_vinfo->vector_mode; loop->aux = NULL; if (res) @@ -2502,11 +2502,11 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared) if (mode_i < vector_modes.length () && known_eq (GET_MODE_SIZE (vector_modes[mode_i]), - autodetected_vector_size)) + GET_MODE_SIZE (autodetected_vector_mode))) mode_i += 1; if (mode_i == vector_modes.length () - || known_eq (autodetected_vector_size, 0U)) + || autodetected_vector_mode == VOIDmode) break; /* Try the next biggest vector size. */ @@ -2521,12 +2521,9 @@ vect_analyze_loop (class loop *loop, vec_info_shared *shared) { loop->aux = (loop_vec_info) first_loop_vinfo; if (dump_enabled_p ()) - { - dump_printf_loc (MSG_NOTE, vect_location, - "***** Choosing vector size "); - dump_dec (MSG_NOTE, first_loop_vinfo->vector_size); - dump_printf (MSG_NOTE, "\n"); - } + dump_printf_loc (MSG_NOTE, vect_location, + "***** Choosing vector mode %s\n", + GET_MODE_NAME (first_loop_vinfo->vector_mode)); LOOP_VINFO_VERSIONING_THRESHOLD (first_loop_vinfo) = lowest_th; return first_loop_vinfo; } @@ -8580,12 +8577,9 @@ vect_transform_loop (loop_vec_info loop_vinfo) dump_printf (MSG_NOTE, "\n"); } else - { - dump_printf_loc (MSG_NOTE, vect_location, - "LOOP EPILOGUE VECTORIZED (VS="); - dump_dec (MSG_NOTE, loop_vinfo->vector_size); - dump_printf (MSG_NOTE, ")\n"); - } + dump_printf_loc (MSG_NOTE, vect_location, + "LOOP EPILOGUE VECTORIZED (MODE=%s)\n", + GET_MODE_NAME (loop_vinfo->vector_mode)); } /* Loops vectorized with a variable factor won't benefit from |