dump load permutations and refcount per SLP node
authorRichard Biener <rguenther@suse.de>
Wed, 26 Feb 2020 13:51:26 +0000 (14:51 +0100)
committerRichard Biener <rguenther@suse.de>
Wed, 26 Feb 2020 13:53:37 +0000 (14:53 +0100)
This adjusts dumping as proved useful in debugging.

2020-02-26  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
and load permutation.

gcc/ChangeLog
gcc/tree-vect-slp.c

index c5b1ecc..4b95966 100644 (file)
@@ -1,3 +1,8 @@
+2020-02-26  Richard Biener  <rguenther@suse.de>
+
+       * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count
+       and load permutation.
+
 2020-02-26  Richard Sandiford  <richard.sandiford@arm.com>
 
        PR middle-end/93843
index 077c794..c7ddd94 100644 (file)
@@ -1641,7 +1641,7 @@ static void
 vect_print_slp_tree (dump_flags_t dump_kind, dump_location_t loc,
                     slp_tree node, hash_set<slp_tree> &visited)
 {
-  unsigned i;
+  unsigned i, j;
   stmt_vec_info stmt_info;
   slp_tree child;
   tree op;
@@ -1651,13 +1651,13 @@ vect_print_slp_tree (dump_flags_t dump_kind, dump_location_t loc,
 
   dump_metadata_t metadata (dump_kind, loc.get_impl_location ());
   dump_user_location_t user_loc = loc.get_user_location ();
-  dump_printf_loc (metadata, user_loc, "node%s %p (max_nunits=%u)\n",
+  dump_printf_loc (metadata, user_loc, "node%s %p (max_nunits=%u, refcnt=%u)\n",
                   SLP_TREE_DEF_TYPE (node) == vect_external_def
                   ? " (external)"
                   : (SLP_TREE_DEF_TYPE (node) == vect_constant_def
                      ? " (constant)"
                      : ""), node,
-                  estimated_poly_value (node->max_nunits));
+                  estimated_poly_value (node->max_nunits), node->refcnt);
   if (SLP_TREE_SCALAR_STMTS (node).exists ())
     FOR_EACH_VEC_ELT (SLP_TREE_SCALAR_STMTS (node), i, stmt_info)
       dump_printf_loc (metadata, user_loc, "\tstmt %u %G", i, stmt_info->stmt);
@@ -1669,6 +1669,13 @@ vect_print_slp_tree (dump_flags_t dump_kind, dump_location_t loc,
                     i < SLP_TREE_SCALAR_OPS (node).length () - 1 ? "," : "");
       dump_printf (metadata, "}\n");
     }
+  if (SLP_TREE_LOAD_PERMUTATION (node).exists ())
+    {
+      dump_printf_loc (metadata, user_loc, "\tload permutation {");
+      FOR_EACH_VEC_ELT (SLP_TREE_LOAD_PERMUTATION (node), i, j)
+       dump_printf (dump_kind, " %u", j);
+      dump_printf (dump_kind, " }\n");
+    }
   if (SLP_TREE_CHILDREN (node).is_empty ())
     return;
   dump_printf_loc (metadata, user_loc, "\tchildren");