2014-01-25 Jakub Jelinek <jakub@redhat.com>
+ * print-rtl.c (in_call_function_usage): New var.
+ (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
+ EXPR_LIST mode as mode and not as reg note name.
+
PR middle-end/59561
* cfgloopmanip.c (copy_loop_info): If
loop->warned_aggressive_loop_optimizations, make sure
static int indent;
+static bool in_call_function_usage;
+
static void print_rtx (const_rtx);
/* String printed at beginning of each RTL when it is dumped.
if ((GET_CODE (in_rtx) == EXPR_LIST
|| GET_CODE (in_rtx) == INSN_LIST
|| GET_CODE (in_rtx) == INT_LIST)
- && (int)GET_MODE (in_rtx) < REG_NOTE_MAX)
+ && (int)GET_MODE (in_rtx) < REG_NOTE_MAX
+ && !in_call_function_usage)
fprintf (outfile, ":%s",
GET_REG_NOTE_NAME (GET_MODE (in_rtx)));
print_rtx_head, indent * 2, "");
if (!sawclose)
fprintf (outfile, " ");
- print_rtx (XEXP (in_rtx, i));
+ if (i == 8 && CALL_P (in_rtx))
+ {
+ in_call_function_usage = true;
+ print_rtx (XEXP (in_rtx, i));
+ in_call_function_usage = false;
+ }
+ else
+ print_rtx (XEXP (in_rtx, i));
indent -= 2;
break;