From: Richard Biener Date: Wed, 7 Jul 2021 09:45:43 +0000 (+0200) Subject: Display the number of components BB vectorized X-Git-Tag: basepoints/gcc-13~6068 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c03cae4e066066278c8435c409829a9bf851e49f;p=thirdparty%2Fgcc.git Display the number of components BB vectorized This amends the optimization message printed when a basic-block part is vectorized to mention the number of SLP graph entries. This helps when debugging vectorization differences and we end up merging SLP instances for costing purposes. 2021-07-07 Richard Biener * tree-vect-slp.c (vect_slp_region): Show the number of SLP graph entries in the optimization message. * g++.dg/vect/slp-pr87105.cc: Adjust. * gcc.dg/vect/bb-slp-pr54400.c: Likewise. --- diff --git a/gcc/testsuite/g++.dg/vect/slp-pr87105.cc b/gcc/testsuite/g++.dg/vect/slp-pr87105.cc index d07b1cd46b77..451a117e2d28 100644 --- a/gcc/testsuite/g++.dg/vect/slp-pr87105.cc +++ b/gcc/testsuite/g++.dg/vect/slp-pr87105.cc @@ -99,7 +99,7 @@ void quadBoundingBoxA(const Point bez[3], Box& bBox) noexcept { // We should have if-converted everything down to straight-line code // { dg-final { scan-tree-dump-times "" 1 "slp2" } } -// { dg-final { scan-tree-dump-times "basic block part vectorized" 1 "slp2" { xfail { { ! vect_element_align } && { ! vect_hw_misalign } } } } } +// { dg-final { scan-tree-dump-times "optimized: basic block part" 1 "slp2" { xfail { { ! vect_element_align } && { ! vect_hw_misalign } } } } } // It's a bit awkward to detect that all stores were vectorized but the // following more or less does the trick // { dg-final { scan-tree-dump "vect_\[^\r\m\]* = MIN" "slp2" { xfail { { ! vect_element_align } && { ! vect_hw_misalign } } } } } diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c b/gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c index 6b427aac774a..7c46fa0e4640 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c @@ -39,5 +39,5 @@ main () } /* We are lacking an effective target for .REDUC_PLUS support. */ -/* { dg-final { scan-tree-dump-times "basic block part vectorized" 3 "slp2" { target x86_64-*-* } } } */ +/* { dg-final { scan-tree-dump-times "optimized: basic block part" 3 "slp2" { target x86_64-*-* } } } */ /* { dg-final { scan-tree-dump-not " = VEC_PERM_EXPR" "slp2" { target x86_64-*-* } } } */ diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 5357cd0e7a4e..cd002b3fb7c1 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -5827,12 +5827,16 @@ vect_slp_region (vec bbs, vec datarefs, if (GET_MODE_SIZE (bb_vinfo->vector_mode).is_constant (&bytes)) dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location, - "basic block part vectorized using %wu " - "byte vectors\n", bytes); + "basic block part with %u components " + "vectorized using %wu byte vectors\n", + instance->subgraph_entries.length (), + bytes); else dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location, - "basic block part vectorized using " - "variable length vectors\n"); + "basic block part with %u components " + "vectorized using variable length " + "vectors\n", + instance->subgraph_entries.length ()); } } }