diff mbox series

Note which vector size was used in -fopt-info vectorizer message

Message ID alpine.LSU.2.20.1806151439420.5043@zhemvz.fhfr.qr
State New
Headers show
Series Note which vector size was used in -fopt-info vectorizer message | expand

Commit Message

Richard Biener June 15, 2018, 12:40 p.m. UTC
$subject

I mainly need this for evaluation right now but I guess it's useful
to users as well (where a new target hook could give names to sizes,
but well...)

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.

Richard.

2018-06-15  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS
	here, also noting vector size used.
	* tree-vectorizer.c (vectorize_loops): Adjust.  Note vector
	size used in MSG_OPTIMIZED_LOCATIONS dump.
	(pass_slp_vectorize::execute): Adjust.
diff mbox series

Patch

diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 930f7086720..3039ae28fb7 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -3037,9 +3037,16 @@  vect_slp_bb (basic_block bb)
 
 	  vect_schedule_slp (bb_vinfo);
 
-	  if (dump_enabled_p ())
-	    dump_printf_loc (MSG_NOTE, vect_location,
-			     "basic block part vectorized\n");
+	  unsigned HOST_WIDE_INT bytes;
+	  if (current_vector_size.is_constant (&bytes))
+	    dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
+			     "basic block part vectorized using "
+			     HOST_WIDE_INT_PRINT_UNSIGNED " byte "
+			     "vectors\n", bytes);
+	  else
+	    dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
+			     "basic block part vectorized using variable "
+			     "length vectors\n");
 
 	  vectorized = true;
 	}
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 8ff90b37ee6..eb9129051b5 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -794,7 +794,7 @@  vectorize_loops (void)
 		  }
 		if (! has_mask_load_store && vect_slp_bb (bb))
 		  {
-		    dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
+		    dump_printf_loc (MSG_NOTE, vect_location,
 				     "basic block vectorized\n");
 		    fold_loop_internal_call (loop_vectorized_call,
 					     boolean_true_node);
@@ -827,10 +827,17 @@  vectorize_loops (void)
 
 	if (loop_vectorized_call)
 	  set_uid_loop_bbs (loop_vinfo, loop_vectorized_call);
-        if (LOCATION_LOCUS (vect_location) != UNKNOWN_LOCATION
-	    && dump_enabled_p ())
-          dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
-                           "loop vectorized\n");
+
+	unsigned HOST_WIDE_INT bytes;
+	if (current_vector_size.is_constant (&bytes))
+	  dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
+			   "loop vectorized vectorized using "
+			   HOST_WIDE_INT_PRINT_UNSIGNED " byte "
+			   "vectors\n", bytes);
+	else
+	  dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
+			   "loop vectorized using variable length vectors\n");
+
 	new_loop = vect_transform_loop (loop_vinfo);
 	num_vectorized_loops++;
 	/* Now that the loop has been vectorized, allow it to be unrolled
@@ -1066,8 +1073,7 @@  pass_slp_vectorize::execute (function *fun)
   FOR_EACH_BB_FN (bb, fun)
     {
       if (vect_slp_bb (bb))
-	dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, vect_location,
-			 "basic block vectorized\n");
+	dump_printf_loc (MSG_NOTE, vect_location, "basic block vectorized\n");
     }
 
   if (!in_loop_pipeline)