+2016-10-14 David Malcolm <dmalcolm@redhat.com>
+
+ * print-rtl-function.c (print_edge): Omit "(flags)" when none are
+ set.
+ (print_rtx_function): Update example in comment for...
+ * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
+ non-virtual pseudos with a '%' sigil followed by the regno, offset
+ by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
+ pseudo is dumped as "%0".
+
2016-10-14 Jakub Jelinek <jakub@redhat.com>
PR middle-end/77959
/* Express edge flags as a string with " | " separator.
e.g. (flags "FALLTHRU | DFS_BACK"). */
- fprintf (outfile, " (flags \"");
- bool seen_flag = false;
-#define DEF_EDGE_FLAG(NAME,IDX) \
+ if (e->flags)
+ {
+ fprintf (outfile, " (flags \"");
+ bool seen_flag = false;
+#define DEF_EDGE_FLAG(NAME,IDX) \
do { \
if (e->flags & EDGE_##NAME) \
{ \
#include "cfg-flags.def"
#undef DEF_EDGE_FLAG
- fprintf (outfile, "\"))\n");
+ fprintf (outfile, "\")");
+ }
+
+ fprintf (outfile, ")\n");
}
/* If BB is non-NULL, print the start of a "(block)" directive for it
If COMPACT, then instructions are printed in a compact form:
- INSN_UIDs are omitted, except for jumps and CODE_LABELs,
- INSN_CODEs are omitted,
- - register numbers are omitted for hard and virtual regs
+ - register numbers are omitted for hard and virtual regs, and
+ non-virtual pseudos are offset relative to the first such reg, and
+ printed with a '%' sigil e.g. "%0" for (LAST_VIRTUAL_REGISTER + 1),
- insn names are prefixed with "c" (e.g. "cinsn", "cnote", etc)
Example output (with COMPACT==true):
(reg:SI di [ i ])) "t.c":2
(nil))
(cnote NOTE_INSN_FUNCTION_BEG)
- (cinsn (set (reg:SI 89)
+ (cinsn (set (reg:SI %2)
(mem/c:SI (plus:DI (reg/f:DI virtual-stack-vars)
(const_int -4)) [1 i+0 S4 A32])) "t.c":3
(nil))
(cinsn (parallel [
- (set (reg:SI 87 [ _2 ])
- (ashift:SI (reg:SI 89)
+ (set (reg:SI %0 [ _2 ])
+ (ashift:SI (reg:SI %2)
(const_int 1)))
(clobber (reg:CC flags))
]) "t.c":3
(const_int -4)) [1 i+0 S4 A32])
(const_int 1))
(nil)))
- (cinsn (set (reg:SI 88 [ <retval> ])
- (reg:SI 87 [ _2 ])) "t.c":3
+ (cinsn (set (reg:SI %1 [ <retval> ])
+ (reg:SI %0 [ _2 ])) "t.c":3
(nil))
(cinsn (set (reg/i:SI ax)
- (reg:SI 88 [ <retval> ])) "t.c":4
+ (reg:SI %1 [ <retval> ])) "t.c":4
(nil))
(cinsn (use (reg/i:SI ax)) "t.c":4
(nil))
#endif
if (flag_dump_unnumbered && is_insn)
fputc ('#', outfile);
+ else if (flag_compact)
+ {
+ /* In compact mode, print pseudos with a '%' sigil following
+ by the regno, offset by (LAST_VIRTUAL_REGISTER + 1), so that the
+ first non-virtual pseudo is dumped as "%0". */
+ gcc_assert (regno > LAST_VIRTUAL_REGISTER);
+ fprintf (outfile, " %%%d", regno - (LAST_VIRTUAL_REGISTER + 1));
+ }
else
fprintf (outfile, " %d", regno);