Richard Biener <rguent...@suse.de> writes:
> The following includes whether we vectorize an epilogue, whether
> we use loop masking and what vectorization factor (unroll factor)
> we use.  So it's now
>
> t.c:4:21: optimized: loop vectorized using 64 byte vectors and unroll factor 
> 32
> t.c:4:21: optimized: epilogue loop vectorized using masked 64 byte vectors 
> and unroll factor 32
>
> for a masked epilogue with AVX512 and HImode data for example.  Rather
> than
>
> t.c:4:21: optimized: loop vectorized using 64 byte vectors
> t.c:4:21: optimized: loop vectorized using 64 byte vectors
>
> I verified we don't translate opt-info messages and thus excessive
> use of %s to compose the strings should be OK.
>
> Bootstrap and regtest ongoing on x86_64-unknown-linux-gnu
> (merely to look for testcases scanning for the old message too
> closely).
>
> Any comments or suggestions for improvements?

It might be worth adding the vector-level unroll factor for the
variable-length case (suggested_unroll_factor), but that could be
a future change.

So LGTM FWIW.  Thanks for doing this.

Richard

>
>       * tree-vectorizer.cc (vect_transform_loops): When diagnosing
>       a vectorized loop indicate whether we vectorized an epilogue,
>       whether we used masked vectors and what unroll factor was
>       used.
> ---
>  gcc/tree-vectorizer.cc | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc
> index 447f882c518..2f77e46ba99 100644
> --- a/gcc/tree-vectorizer.cc
> +++ b/gcc/tree-vectorizer.cc
> @@ -1026,10 +1026,19 @@ vect_transform_loops (hash_table<simduid_to_vf> 
> *&simduid_to_vf_htab,
>      {
>        if (GET_MODE_SIZE (loop_vinfo->vector_mode).is_constant (&bytes))
>       dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
> -                      "loop vectorized using %wu byte vectors\n", bytes);
> +                      "%sloop vectorized using %s%wu byte vectors and"
> +                      " unroll factor %u\n",
> +                      LOOP_VINFO_EPILOGUE_P (loop_vinfo)
> +                      ? "epilogue " : "",
> +                      LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo)
> +                      ? "masked " : "", bytes,
> +                      (unsigned int) LOOP_VINFO_VECT_FACTOR
> +                                              (loop_vinfo).to_constant ());
>        else
>       dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
> -                      "loop vectorized using variable length vectors\n");
> +                      "%sloop vectorized using variable length vectors\n",
> +                      LOOP_VINFO_EPILOGUE_P (loop_vinfo)
> +                      ? "epilogue " : "");
>      }
>  
>    loop_p new_loop = vect_transform_loop (loop_vinfo,

Reply via email to