sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.

* sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.

From-SVN: r197640
This commit is contained in:
Steven Bosscher 2013-04-09 15:02:41 +00:00
parent 48eecbeeb8
commit a949cf1c75
2 changed files with 28 additions and 5 deletions

View File

@ -1,5 +1,7 @@
2013-04-09 Steven Bosscher <steven@gcc.gnu.org> 2013-04-09 Steven Bosscher <steven@gcc.gnu.org>
* sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
* config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv". * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
2013-04-09 Marek Polacek <polacek@redhat.com> 2013-04-09 Marek Polacek <polacek@redhat.com>

View File

@ -51,6 +51,9 @@ along with GCC; see the file COPYING3. If not see
static bool rtl_slim_pp_initialized = false; static bool rtl_slim_pp_initialized = false;
static pretty_printer rtl_slim_pp; static pretty_printer rtl_slim_pp;
/* For insns we print patterns, and for some patterns we print insns... */
static void print_insn_with_notes (pretty_printer *, const_rtx);
/* This recognizes rtx'en classified as expressions. These are always /* This recognizes rtx'en classified as expressions. These are always
represent some action on values or results of other expression, that represent some action on values or results of other expression, that
may be stored in objects representing values. */ may be stored in objects representing values. */
@ -562,13 +565,31 @@ print_pattern (pretty_printer *pp, const_rtx x, int verbose)
break; break;
case SEQUENCE: case SEQUENCE:
{ {
int i;
pp_string (pp, "sequence{"); pp_string (pp, "sequence{");
for (i = 0; i < XVECLEN (x, 0); i++) if (INSN_P (XVECEXP (x, 0, 0)))
{ {
print_pattern (pp, XVECEXP (x, 0, i), verbose); /* Print the sequence insns indented. */
pp_character (pp, ';'); const char * save_print_rtx_head = print_rtx_head;
char indented_print_rtx_head[32];
pp_newline (pp);
gcc_assert (strlen (print_rtx_head) < sizeof (indented_print_rtx_head) - 4);
snprintf (indented_print_rtx_head,
sizeof (indented_print_rtx_head),
"%s ", print_rtx_head);
print_rtx_head = indented_print_rtx_head;
for (int i = 0; i < XVECLEN (x, 0); i++)
print_insn_with_notes (pp, XVECEXP (x, 0, i));
pp_printf (pp, "%s ", save_print_rtx_head);
print_rtx_head = save_print_rtx_head;
}
else
{
for (int i = 0; i < XVECLEN (x, 0); i++)
{
print_pattern (pp, XVECEXP (x, 0, i), verbose);
pp_character (pp, ';');
}
} }
pp_character (pp, '}'); pp_character (pp, '}');
} }