From 1321723711ff8d2446da3eb2eb1830e6c172982b Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Mon, 22 Aug 2016 15:13:16 +0000 Subject: [PATCH] Improve readability of debug_tree() dumps for SSA_NAME and VECTOR_CST gcc/ChangeLog: * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of identical consecutive elements. [SSA_NAME]: Print the name's def stmt on its own line. When printing the node's def stmt, avoid printing an unwanted trailing newline by replacing the call to print_gimple_stmt() with its inlined body and adjusting it to not set pp_needs_newline and to call pp_flush() instead of pp_newline_and_flush(). From-SVN: r239661 --- gcc/ChangeLog | 10 ++++++++++ gcc/print-tree.c | 20 ++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7496877c7ca..e62f3313d92 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2016-08-22 Patrick Palka + + * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of + identical consecutive elements. + [SSA_NAME]: Print the name's def stmt on its own line. When printing + the node's def stmt, avoid printing an unwanted trailing newline by + replacing the call to print_gimple_stmt() with its inlined body and + adjusting it to not set pp_needs_newline and to call pp_flush() + instead of pp_newline_and_flush(). + 2016-08-22 Joseph Myers * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node) diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 468f1ff49e1..7546f19e33e 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -770,8 +770,18 @@ print_node (FILE *file, const char *prefix, tree node, int indent) for (i = 0; i < VECTOR_CST_NELTS (node); ++i) { - sprintf (buf, "elt%u: ", i); + unsigned j; + /* Coalesce the output of identical consecutive elements. */ + for (j = i + 1; j < VECTOR_CST_NELTS (node); j++) + if (VECTOR_CST_ELT (node, j) != VECTOR_CST_ELT (node, i)) + break; + j--; + if (i == j) + sprintf (buf, "elt%u: ", i); + else + sprintf (buf, "elt%u...elt%u: ", i, j); print_node (file, buf, VECTOR_CST_ELT (node, i), indent + 4); + i = j; } } break; @@ -869,8 +879,14 @@ print_node (FILE *file, const char *prefix, tree node, int indent) case SSA_NAME: print_node_brief (file, "var", SSA_NAME_VAR (node), indent + 4); + indent_to (file, indent + 4); fprintf (file, "def_stmt "); - print_gimple_stmt (file, SSA_NAME_DEF_STMT (node), indent + 4, 0); + { + pretty_printer buffer; + buffer.buffer->stream = file; + pp_gimple_stmt_1 (&buffer, SSA_NAME_DEF_STMT (node), indent + 4, 0); + pp_flush (&buffer); + } indent_to (file, indent + 4); fprintf (file, "version %u", SSA_NAME_VERSION (node)); -- 2.30.2