aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-07-07 11:45:43 +0200
committerRichard Biener <rguenther@suse.de>2021-07-12 12:18:37 +0200
commitc03cae4e066066278c8435c409829a9bf851e49f (patch)
tree7fb6c39ee94a9d625ac7452fd11c64bff4ef960d /gcc
parent92343e0ba4d47f21ae20ffcb83d736bdbc15dae0 (diff)
downloadgcc-c03cae4e066066278c8435c409829a9bf851e49f.zip
gcc-c03cae4e066066278c8435c409829a9bf851e49f.tar.gz
gcc-c03cae4e066066278c8435c409829a9bf851e49f.tar.bz2
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 <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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/vect/slp-pr87105.cc2
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c2
-rw-r--r--gcc/tree-vect-slp.c12
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 d07b1cd..451a117 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 6b427aa..7c46fa0 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 5357cd0..cd002b3 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 ());
}
}
}