Hi, For TDF_GIMPLE, the attached patch changes dump format of realpart_expr from REALPART_EXPR<var> to __real var since the latter form is accepted by gimplefe. Similarly for imagpart_expr. Is this OK after bootstrap+test ?
Thanks, Prathamesh
diff --git a/gcc/testsuite/gcc.dg/gimplefe-20.c b/gcc/testsuite/gcc.dg/gimplefe-20.c new file mode 100644 index 0000000..99b3180 --- /dev/null +++ b/gcc/testsuite/gcc.dg/gimplefe-20.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fgimple -fdump-tree-ssa-gimple" } */ + +_Complex a; + +double __GIMPLE() f() +{ + double t1; + double t2; + double _1; + +bb1: + t1_2 = __real a; + t2_3 = __imag a; + _1 = t1_2 + t2_3; + return _1; +} + +/* { dg-final { scan-tree-dump "__real a" "ssa" } } */ +/* { dg-final { scan-tree-dump "__imag a" "ssa" } } */ diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c index 5b3e23e..40c0bc6 100644 --- a/gcc/tree-pretty-print.c +++ b/gcc/tree-pretty-print.c @@ -2451,15 +2451,31 @@ dump_generic_node (pretty_printer *pp, tree node, int spc, int flags, break; case REALPART_EXPR: - pp_string (pp, "REALPART_EXPR <"); - dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false); - pp_greater (pp); + if (flags & TDF_GIMPLE) + { + pp_string (pp, "__real "); + dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false); + } + else + { + pp_string (pp, "REALPART_EXPR <"); + dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false); + pp_greater (pp); + } break; case IMAGPART_EXPR: - pp_string (pp, "IMAGPART_EXPR <"); - dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false); - pp_greater (pp); + if (flags & TDF_GIMPLE) + { + pp_string (pp, "__imag "); + dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false); + } + else + { + pp_string (pp, "IMAGPART_EXPR <"); + dump_generic_node (pp, TREE_OPERAND (node, 0), spc, flags, false); + pp_greater (pp); + } break; case VA_ARG_EXPR: