summaryrefslogtreecommitdiff
path: root/gcc/print-rtl-function.c
diff options
context:
space:
mode:
authordmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>2016-10-14 20:22:23 +0000
committerdmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4>2016-10-14 20:22:23 +0000
commit6c73025d20c3541e5a9a8754b47e622d3f33963b (patch)
treef477f08f40f1c4296660873d28335ce92f40ee1d /gcc/print-rtl-function.c
parent5e94fd934ab7ba1b9d323570166e15b55a2ebc4c (diff)
downloadgcc-6c73025d20c3541e5a9a8754b47e622d3f33963b.tar.gz
Tweaks to print_rtx_function
gcc/ChangeLog: * 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". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241185 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/print-rtl-function.c')
-rw-r--r--gcc/print-rtl-function.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/gcc/print-rtl-function.c b/gcc/print-rtl-function.c
index 2abae849ab9..f46304bf944 100644
--- a/gcc/print-rtl-function.c
+++ b/gcc/print-rtl-function.c
@@ -60,9 +60,11 @@ print_edge (FILE *outfile, edge e, bool from)
/* 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) \
{ \
@@ -75,7 +77,10 @@ print_edge (FILE *outfile, edge e, bool from)
#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
@@ -132,7 +137,9 @@ can_have_basic_block_p (const rtx_insn *insn)
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):
@@ -148,13 +155,13 @@ can_have_basic_block_p (const rtx_insn *insn)
(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
@@ -162,11 +169,11 @@ can_have_basic_block_p (const rtx_insn *insn)
(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))