summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-slp.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-02-26 14:51:26 +0100
committerRichard Biener <rguenther@suse.de>2020-02-26 14:53:37 +0100
commit759bd406a2b900dd323571c3855a64f885e6b3b7 (patch)
treed95b71ddfe562a1e51e23dd4832d1b7627c9a57c /gcc/tree-vect-slp.c
parentb6268016bf46dd63227dcbb73d13c30a3b4b9d2a (diff)
dump load permutations and refcount per SLP node
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.
Diffstat (limited to 'gcc/tree-vect-slp.c')
-rw-r--r--gcc/tree-vect-slp.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 077c7946fee..c7ddd94b39f 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -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");