[PATCH] Display the number of components BB vectorized

Richard Biener rguenther@suse.de
Mon Jul 12 10:20:52 GMT 2021


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.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

2021-07-07  Richard Biener  <rguenther@suse.de>

	* 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.
---
 gcc/testsuite/g++.dg/vect/slp-pr87105.cc   |  2 +-
 gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c |  2 +-
 gcc/tree-vect-slp.c                        | 12 ++++++++----
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/gcc/testsuite/g++.dg/vect/slp-pr87105.cc b/gcc/testsuite/g++.dg/vect/slp-pr87105.cc
index d07b1cd46b7..451a117e2d2 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 "<bb \[0-9\]+>" 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 6b427aac774..7c46fa0e464 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 5357cd0e7a4..cd002b3fb7c 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -5827,12 +5827,16 @@ vect_slp_region (vec<basic_block> bbs, vec<data_reference_p> 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 ());
 		}
 	    }
 	}
-- 
2.26.2


More information about the Gcc-patches mailing list