Commit a949cf1c by Steven Bosscher

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
parent 48eecbee
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>
......
...@@ -51,6 +51,9 @@ along with GCC; see the file COPYING3. If not see ...@@ -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,14 +565,32 @@ print_pattern (pretty_printer *pp, const_rtx x, int verbose) ...@@ -562,14 +565,32 @@ 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 the sequence insns indented. */
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); print_pattern (pp, XVECEXP (x, 0, i), verbose);
pp_character (pp, ';'); pp_character (pp, ';');
} }
}
pp_character (pp, '}'); pp_character (pp, '}');
} }
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment