mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
48eecbeeb8
commit
a949cf1c75
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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, '}');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue