diff options
author | Richard Biener <rguenther@suse.de> | 2020-08-27 13:04:19 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-08-27 13:08:13 +0200 |
commit | 9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07 (patch) | |
tree | 72e28009a0387602d3b70e6e3cdaa3fab74b7b89 /gcc/tree-pretty-print.c | |
parent | 6b3034eaba83935d9f6dfb20d2efbdb34b5b00bf (diff) | |
download | gcc-9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07.zip gcc-9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07.tar.gz gcc-9ceb3b8d8f6dd088f3efd590aae9e54a265e5b07.tar.bz2 |
streamline TARGET_MEM_REF dumping
The following streamlines TARGET_MEM_REF dumping building
on what we do for MEM_REF and thus dumping things like
access type, TBAA type and base/clique. I've changed it
to do semantic dumping aka base + offset + step * index
rather than the odd base: A, step: way.
2020-08-27 Richard Biener <rguenther@suse.de>
* tree-pretty-print.c (dump_mem_ref): Handle TARGET_MEM_REFs.
(dump_generic_node): Use dump_mem_ref also for TARGET_MEM_REF.
* gcc.dg/tree-ssa/loop-19.c: Adjust.
* gcc.dg/tree-ssa/loop-2.c: Likewise.
* gcc.dg/tree-ssa/loop-3.c: Likewise.
Diffstat (limited to 'gcc/tree-pretty-print.c')
-rw-r--r-- | gcc/tree-pretty-print.c | 89 |
1 files changed, 27 insertions, 62 deletions
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c index 655061c..075a3fc 100644 --- a/gcc/tree-pretty-print.c +++ b/gcc/tree-pretty-print.c @@ -1441,7 +1441,7 @@ dump_omp_atomic_memory_order (pretty_printer *pp, enum omp_memory_order mo) static void dump_mem_ref (pretty_printer *pp, tree node, int spc, dump_flags_t flags) { - if (flags & TDF_GIMPLE) + if (TREE_CODE (node) == MEM_REF && (flags & TDF_GIMPLE)) { pp_string (pp, "__MEM <"); dump_generic_node (pp, TREE_TYPE (node), @@ -1472,7 +1472,8 @@ dump_mem_ref (pretty_printer *pp, tree node, int spc, dump_flags_t flags) } pp_right_paren (pp); } - else if (integer_zerop (TREE_OPERAND (node, 1)) + else if (TREE_CODE (node) == MEM_REF + && integer_zerop (TREE_OPERAND (node, 1)) /* Dump the types of INTEGER_CSTs explicitly, for we can't infer them and MEM_ATTR caching will share MEM_REFs with differently-typed op0s. */ @@ -1541,12 +1542,33 @@ dump_mem_ref (pretty_printer *pp, tree node, int spc, dump_flags_t flags) dump_generic_node (pp, op1type, spc, flags | TDF_SLIM, false); pp_right_paren (pp); dump_generic_node (pp, op0, spc, flags, false); - if (!integer_zerop (op1)) - if (!integer_zerop (TREE_OPERAND (node, 1))) + if (TREE_CODE (node) == MEM_REF + && !integer_zerop (op1)) { pp_string (pp, " + "); dump_generic_node (pp, op1, spc, flags, false); } + if (TREE_CODE (node) == TARGET_MEM_REF) + { + tree tmp = TMR_INDEX2 (node); + if (tmp) + { + pp_string (pp, " + "); + dump_generic_node (pp, tmp, spc, flags, false); + } + tmp = TMR_INDEX (node); + if (tmp) + { + pp_string (pp, " + "); + dump_generic_node (pp, tmp, spc, flags, false); + tmp = TMR_STEP (node); + pp_string (pp, " * "); + if (tmp) + dump_generic_node (pp, tmp, spc, flags, false); + else + pp_string (pp, "1"); + } + } if ((flags & TDF_ALIAS) && MR_DEPENDENCE_CLIQUE (node) != 0) { @@ -1854,65 +1876,8 @@ dump_generic_node (pretty_printer *pp, tree node, int spc, dump_flags_t flags, break; case MEM_REF: - dump_mem_ref (pp, node, spc, flags); - break; - case TARGET_MEM_REF: - { - const char *sep = ""; - tree tmp; - - pp_string (pp, "MEM["); - - if (TREE_CODE (TMR_BASE (node)) == ADDR_EXPR) - { - pp_string (pp, sep); - sep = ", "; - pp_string (pp, "symbol: "); - dump_generic_node (pp, TREE_OPERAND (TMR_BASE (node), 0), - spc, flags, false); - } - else - { - pp_string (pp, sep); - sep = ", "; - pp_string (pp, "base: "); - dump_generic_node (pp, TMR_BASE (node), spc, flags, false); - } - tmp = TMR_INDEX2 (node); - if (tmp) - { - pp_string (pp, sep); - sep = ", "; - pp_string (pp, "base: "); - dump_generic_node (pp, tmp, spc, flags, false); - } - tmp = TMR_INDEX (node); - if (tmp) - { - pp_string (pp, sep); - sep = ", "; - pp_string (pp, "index: "); - dump_generic_node (pp, tmp, spc, flags, false); - } - tmp = TMR_STEP (node); - if (tmp) - { - pp_string (pp, sep); - sep = ", "; - pp_string (pp, "step: "); - dump_generic_node (pp, tmp, spc, flags, false); - } - tmp = TMR_OFFSET (node); - if (tmp) - { - pp_string (pp, sep); - sep = ", "; - pp_string (pp, "offset: "); - dump_generic_node (pp, tmp, spc, flags, false); - } - pp_right_bracket (pp); - } + dump_mem_ref (pp, node, spc, flags); break; case ARRAY_TYPE: |