AVX512-style masks and SVE-style predicates can be difficult
to debug in gimple dumps, since the types are printed like this:

  vector(4) <unnamed type> foo;

Some important details are hidden by that <unnamed type>,
such as the number of bits in an element and whether the type
is signed or unsigned.

This patch uses an ad-hoc syntax for printing unnamed
boolean types.  Normal frontend ones should be handled
by the earlier TYPE_NAME code.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?

Richard


2020-05-07  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs.
---
 gcc/tree-pretty-print.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 885ca8cd329..f04fd65091a 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -1761,6 +1761,14 @@ dump_generic_node (pretty_printer *pp, tree node, int 
spc, dump_flags_t flags,
                pp_decimal_int (pp, TYPE_PRECISION (node));
                pp_greater (pp);
              }
+           else if (TREE_CODE (node) == BOOLEAN_TYPE)
+             {
+               pp_string (pp, (TYPE_UNSIGNED (node)
+                               ? "<unsigned-boolean:"
+                               : "<signed-boolean:"));
+               pp_decimal_int (pp, TYPE_PRECISION (node));
+               pp_greater (pp);
+             }
            else if (TREE_CODE (node) == VOID_TYPE)
              pp_string (pp, "void");
            else

Reply via email to