diff options
author | Richard Biener <rguenther@suse.de> | 2021-07-07 11:45:43 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-07-12 12:18:37 +0200 |
commit | c03cae4e066066278c8435c409829a9bf851e49f (patch) | |
tree | 7fb6c39ee94a9d625ac7452fd11c64bff4ef960d /gcc | |
parent | 92343e0ba4d47f21ae20ffcb83d736bdbc15dae0 (diff) | |
download | gcc-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.cc | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c | 2 | ||||
-rw-r--r-- | 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 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 ()); } } } |