diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2012-11-27 22:26:15 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2012-11-27 22:26:15 +0000 |
commit | cfbeaedfddbcb4d0bf26436b9d9006667f1a2dde (patch) | |
tree | 5a205a6205f6e25e3d64b5c9f8227e22e33ff3db | |
parent | 916bad5528903202476629ae03d4af03779b4f88 (diff) | |
download | gcc-cfbeaedfddbcb4d0bf26436b9d9006667f1a2dde.zip gcc-cfbeaedfddbcb4d0bf26436b9d9006667f1a2dde.tar.gz gcc-cfbeaedfddbcb4d0bf26436b9d9006667f1a2dde.tar.bz2 |
rtl.h (debug_bb_n_slim, [...]): Remove prototypes.
* rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Remove
prototypes.
(debug_rtl_slim): Rename to dump_rtl_slim.
(print_value_slim): Rename to dump_value_slim.
* ira.c (ira_update_equiv_info_by_shuffle_insn): Update
print_value_slim user.
* lra.c (lra_process_new_insns): Use dump_insn_slim to dump single
insns. Use dump_rtl_slim for insn chains.
* lra-constraints.c (get_reload_reg): Update print_value_slim user.
(process_addr_reg): Likewise.
(equiv_address_substitution): Likewise.
(inherit_reload_reg): Likewise. Use dump_insn_slim to dump single
insns.
(check_and_process_move): Likewise.
(lra_constraints): Likewise.
(split_reg): Likewise.
(update_ebb_live_info): Likewise.
(remove_inheritance_pseudos): Likewise.
* sched-vis.c: Don't include sched-int.h.
Remove #ifdef INSN_SCHEDULING tests.
(print_value_slim): Rename to dump_value_slim. Simplify a few
cases using GET_RTX_NAME.
(print_pattern): Do not handle UNSPEC and UNSPECV here, explain why.
(print_insn): Reorganize code to be independent of INSN_SCHEDULING.
Always print CALL_INSN patterns. Harmonize INSN_UID dumping template.
Handle NOTE_INSN_CALL_ARG_LOCATION.
(dump_rtl_slim): Copied from debug_rtl_slim.
(debug_rtl_slim): Wrapper around dump_rtl_slim to stderr.
* haifa-sched.c (schedule_insn): Update print_insn user.
From-SVN: r193873
-rw-r--r-- | gcc/ChangeLog | 32 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 3 | ||||
-rw-r--r-- | gcc/ira.c | 2 | ||||
-rw-r--r-- | gcc/lra-constraints.c | 37 | ||||
-rw-r--r-- | gcc/lra.c | 6 | ||||
-rw-r--r-- | gcc/rtl.h | 15 | ||||
-rw-r--r-- | gcc/sched-vis.c | 191 |
7 files changed, 136 insertions, 150 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0d7dc0b..8d84f78 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,35 @@ +2012-11-27 Steven Bosscher <steven@gcc.gnu.org> + + * rtl.h (debug_bb_n_slim, debug_bb_slim, debug_insn_slim): Remove + prototypes. + (debug_rtl_slim): Rename to dump_rtl_slim. + (print_value_slim): Rename to dump_value_slim. + * ira.c (ira_update_equiv_info_by_shuffle_insn): Update + print_value_slim user. + * lra.c (lra_process_new_insns): Use dump_insn_slim to dump single + insns. Use dump_rtl_slim for insn chains. + * lra-constraints.c (get_reload_reg): Update print_value_slim user. + (process_addr_reg): Likewise. + (equiv_address_substitution): Likewise. + (inherit_reload_reg): Likewise. Use dump_insn_slim to dump single + insns. + (check_and_process_move): Likewise. + (lra_constraints): Likewise. + (split_reg): Likewise. + (update_ebb_live_info): Likewise. + (remove_inheritance_pseudos): Likewise. + * sched-vis.c: Don't include sched-int.h. + Remove #ifdef INSN_SCHEDULING tests. + (print_value_slim): Rename to dump_value_slim. Simplify a few + cases using GET_RTX_NAME. + (print_pattern): Do not handle UNSPEC and UNSPECV here, explain why. + (print_insn): Reorganize code to be independent of INSN_SCHEDULING. + Always print CALL_INSN patterns. Harmonize INSN_UID dumping template. + Handle NOTE_INSN_CALL_ARG_LOCATION. + (dump_rtl_slim): Copied from debug_rtl_slim. + (debug_rtl_slim): Wrapper around dump_rtl_slim to stderr. + * haifa-sched.c (schedule_insn): Update print_insn user. + 2012-11-27 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55458 diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 40350eb..c835bf8 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -3719,7 +3719,8 @@ schedule_insn (rtx insn) print_insn (buf, insn, 0); buf[40] = 0; - fprintf (sched_dump, ";;\t%3i--> %-40s:", clock_var, buf); + fprintf (sched_dump, ";;\t%3i--> %s%-40s:", + clock_var, (*current_sched_info->print_insn) (insn, 1), buf); if (recog_memoized (insn) < 0) fprintf (sched_dump, "nothing"); @@ -2246,7 +2246,7 @@ ira_update_equiv_info_by_shuffle_insn (int to_regno, int from_regno, rtx insns) fprintf (ira_dump_file, " Adding equiv note to insn %u for reg %d ", INSN_UID (insn), to_regno); - print_value_slim (ira_dump_file, x, 1); + dump_value_slim (ira_dump_file, x, 1); fprintf (ira_dump_file, "\n"); } } diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index d90ac02..635bb47 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -425,7 +425,7 @@ get_reload_reg (enum op_type type, enum machine_mode mode, rtx original, if (lra_dump_file != NULL) { fprintf (lra_dump_file, " Reuse r%d for reload ", regno); - print_value_slim (lra_dump_file, original, 1); + dump_value_slim (lra_dump_file, original, 1); } if (new_class != lra_get_allocno_class (regno)) change_class (regno, new_class, ", change", false); @@ -994,7 +994,7 @@ check_and_process_move (bool *change_p, bool *sec_mem_p) if (lra_dump_file != NULL) { fprintf (lra_dump_file, "Deleting move %u\n", INSN_UID (curr_insn)); - debug_rtl_slim (lra_dump_file, curr_insn, curr_insn, -1, 0); + dump_insn_slim (lra_dump_file, curr_insn); } lra_set_insn_deleted (curr_insn); return true; @@ -1088,7 +1088,7 @@ process_addr_reg (rtx *loc, rtx *before, rtx *after, enum reg_class cl) fprintf (lra_dump_file, "Changing pseudo %d in address of insn %u on equiv ", REGNO (reg), INSN_UID (curr_insn)); - print_value_slim (lra_dump_file, *loc, 1); + dump_value_slim (lra_dump_file, *loc, 1); fprintf (lra_dump_file, "\n"); } *loc = copy_rtx (*loc); @@ -2215,7 +2215,7 @@ equiv_address_substitution (struct address_info *ad) { fprintf (lra_dump_file, "Changing address in insn %d ", INSN_UID (curr_insn)); - print_value_slim (lra_dump_file, *ad->outer, 1); + dump_value_slim (lra_dump_file, *ad->outer, 1); } if (base_reg != new_base_reg) { @@ -2272,7 +2272,7 @@ equiv_address_substitution (struct address_info *ad) else { fprintf (lra_dump_file, " on equiv "); - print_value_slim (lra_dump_file, *ad->outer, 1); + dump_value_slim (lra_dump_file, *ad->outer, 1); fprintf (lra_dump_file, "\n"); } } @@ -2676,7 +2676,7 @@ curr_insn_transform (void) fprintf (lra_dump_file, "Changing pseudo %d in operand %i of insn %u on equiv ", REGNO (old), i, INSN_UID (curr_insn)); - print_value_slim (lra_dump_file, subst, 1); + dump_value_slim (lra_dump_file, subst, 1); fprintf (lra_dump_file, "\n"); } op_change_p = change_p = true; @@ -3467,8 +3467,7 @@ lra_constraints (bool first_p) " Removing equiv init insn %i (freq=%d)\n", INSN_UID (curr_insn), BLOCK_FOR_INSN (curr_insn)->frequency); - debug_rtl_slim (lra_dump_file, - curr_insn, curr_insn, -1, 0); + dump_insn_slim (lra_dump_file, curr_insn); } if (contains_reg_p (x, true, false)) lra_risky_transformations_p = true; @@ -3807,7 +3806,7 @@ inherit_reload_reg (bool def_p, int original_regno, " Rejecting inheritance %d->%d " "as it results in 2 or more insns:\n", original_regno, REGNO (new_reg)); - debug_rtl_slim (lra_dump_file, new_insns, NULL_RTX, -1, 0); + dump_rtl_slim (lra_dump_file, new_insns, NULL_RTX, -1, 0); fprintf (lra_dump_file, " >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); } @@ -3853,8 +3852,7 @@ inherit_reload_reg (bool def_p, int original_regno, " Inheritance reuse change %d->%d (bb%d):\n", original_regno, REGNO (new_reg), BLOCK_FOR_INSN (usage_insn)->index); - debug_rtl_slim (lra_dump_file, usage_insn, usage_insn, - -1, 0); + dump_insn_slim (lra_dump_file, usage_insn); } } if (lra_dump_file != NULL) @@ -4058,7 +4056,7 @@ split_reg (bool before_p, int original_regno, rtx insn, rtx next_usage_insns) (lra_dump_file, " Rejecting split %d->%d resulting in > 2 %s save insns:\n", original_regno, REGNO (new_reg), call_save_p ? "call" : ""); - debug_rtl_slim (lra_dump_file, save, NULL_RTX, -1, 0); + dump_rtl_slim (lra_dump_file, save, NULL_RTX, -1, 0); fprintf (lra_dump_file, " ))))))))))))))))))))))))))))))))))))))))))))))))\n"); } @@ -4074,7 +4072,7 @@ split_reg (bool before_p, int original_regno, rtx insn, rtx next_usage_insns) " Rejecting split %d->%d " "resulting in > 2 %s restore insns:\n", original_regno, REGNO (new_reg), call_save_p ? "call" : ""); - debug_rtl_slim (lra_dump_file, restore, NULL_RTX, -1, 0); + dump_rtl_slim (lra_dump_file, restore, NULL_RTX, -1, 0); fprintf (lra_dump_file, " ))))))))))))))))))))))))))))))))))))))))))))))))\n"); } @@ -4101,8 +4099,7 @@ split_reg (bool before_p, int original_regno, rtx insn, rtx next_usage_insns) { fprintf (lra_dump_file, " Split reuse change %d->%d:\n", original_regno, REGNO (new_reg)); - debug_rtl_slim (lra_dump_file, usage_insn, usage_insn, - -1, 0); + dump_insn_slim (lra_dump_file, usage_insn); } } lra_assert (NOTE_P (usage_insn) || NONDEBUG_INSN_P (usage_insn)); @@ -4245,7 +4242,7 @@ update_ebb_live_info (rtx head, rtx tail) if (lra_dump_file != NULL) { fprintf (lra_dump_file, " Removing dead insn:\n "); - debug_rtl_slim (lra_dump_file, curr_insn, curr_insn, -1, 0); + dump_insn_slim (lra_dump_file, curr_insn); } lra_set_insn_deleted (curr_insn); } @@ -4861,8 +4858,7 @@ remove_inheritance_pseudos (bitmap remove_pseudos) bitmap_bit_p (&lra_split_regs, sregno) || bitmap_bit_p (&lra_split_regs, dregno) ? "split" : "inheritance"); - debug_rtl_slim (lra_dump_file, - curr_insn, curr_insn, -1, 0); + dump_insn_slim (lra_dump_file, curr_insn); } lra_set_insn_deleted (curr_insn); done_p = true; @@ -4914,8 +4910,7 @@ remove_inheritance_pseudos (bitmap remove_pseudos) if (lra_dump_file != NULL) { fprintf (lra_dump_file, " Change reload insn:\n"); - debug_rtl_slim (lra_dump_file, - curr_insn, curr_insn, -1, 0); + dump_insn_slim (lra_dump_file, curr_insn); } } } @@ -4958,7 +4953,7 @@ remove_inheritance_pseudos (bitmap remove_pseudos) if (restored_regs_p && lra_dump_file != NULL) { fprintf (lra_dump_file, " Insn after restoring regs:\n"); - debug_rtl_slim (lra_dump_file, curr_insn, curr_insn, -1, 0); + dump_insn_slim (lra_dump_file, curr_insn); } } } @@ -1817,16 +1817,16 @@ lra_process_new_insns (rtx insn, rtx before, rtx after, const char *title) if (lra_dump_file != NULL && (before != NULL_RTX || after != NULL_RTX)) { - debug_rtl_slim (lra_dump_file, insn, insn, -1, 0); + dump_insn_slim (lra_dump_file, insn); if (before != NULL_RTX) { fprintf (lra_dump_file," %s before:\n", title); - debug_rtl_slim (lra_dump_file, before, NULL_RTX, -1, 0); + dump_rtl_slim (lra_dump_file, before, NULL_RTX, -1, 0); } if (after != NULL_RTX) { fprintf (lra_dump_file, " %s after:\n", title); - debug_rtl_slim (lra_dump_file, after, NULL_RTX, -1, 0); + dump_rtl_slim (lra_dump_file, after, NULL_RTX, -1, 0); } fprintf (lra_dump_file, "\n"); } @@ -2575,14 +2575,6 @@ extern rtx make_compound_operation (rtx, enum rtx_code); /* In cfgcleanup.c */ extern void delete_dead_jumptables (void); -/* In sched-vis.c. */ -extern void debug_bb_n_slim (int); -extern void debug_bb_slim (struct basic_block_def *); -extern void print_value_slim (FILE *, const_rtx, int); -extern void debug_rtl_slim (FILE *, const_rtx, const_rtx, int, int); -extern void dump_insn_slim (FILE *f, const_rtx x); -extern void debug_insn_slim (const_rtx x); - /* In sched-rgn.c. */ extern void schedule_insns (void); @@ -2609,9 +2601,12 @@ extern void print_inline_rtx (FILE *, const_rtx, int); sched-vis.c is compiled always. FIXME: Ideally these functions would not be in sched-vis.c but in rtl.c, because they are not only used by the scheduler anymore but for all "slim" RTL dumping. */ -extern void print_insn (char *, const_rtx, int); -extern void print_pattern (char *, const_rtx, int); +extern void dump_value_slim (FILE *, const_rtx, int); +extern void dump_insn_slim (FILE *, const_rtx); +extern void dump_rtl_slim (FILE *, const_rtx, const_rtx, int, int); extern void print_value (char *, const_rtx, int); +extern void print_pattern (char *, const_rtx, int); +extern void print_insn (char *, const_rtx, int); /* In function.c */ extern void reposition_prologue_and_epilogue_notes (void); diff --git a/gcc/sched-vis.c b/gcc/sched-vis.c index 9572a47d..18a3f07 100644 --- a/gcc/sched-vis.c +++ b/gcc/sched-vis.c @@ -1,6 +1,5 @@ -/* Instruction scheduling pass. - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 +/* Printing of RTL in "slim", mnemonic like form. + Copyright (C) 1992-2012 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) @@ -20,6 +19,10 @@ for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ + +/* Historically this form of RTL dumping was introduced along with + the Haifa instruction scheduling pass, hence the name of this file. + But there is nothing in this file left that is scheduler-specific. */ #include "config.h" #include "system.h" @@ -31,7 +34,6 @@ along with GCC; see the file COPYING3. If not see #include "hard-reg-set.h" #include "basic-block.h" #include "insn-attr.h" -#include "sched-int.h" #include "dumpfile.h" /* for the TDF_* flags */ static char *safe_concat (char *, char *, const char *); @@ -498,11 +500,7 @@ print_value (char *buf, const_rtx x, int verbose) sprintf (t, "r%d", REGNO (x)); cur = safe_concat (buf, cur, t); } - if (verbose -#ifdef INSN_SCHEDULING - && !current_sched_info -#endif - ) + if (verbose) { sprintf (t, ":%s", GET_MODE_NAME (GET_MODE (x))); cur = safe_concat (buf, cur, t); @@ -553,7 +551,7 @@ print_value (char *buf, const_rtx x, int verbose) memory. */ void -print_value_slim (FILE *f, const_rtx x, int verbose) +dump_value_slim (FILE *f, const_rtx x, int verbose) { char buf[BUF_LEN]; @@ -590,12 +588,9 @@ print_pattern (char *buf, const_rtx x, int verbose) print_exp (buf, x, verbose); break; case CLOBBER: - print_value (t1, XEXP (x, 0), verbose); - sprintf (buf, "clobber %s", t1); - break; case USE: print_value (t1, XEXP (x, 0), verbose); - sprintf (buf, "use %s", t1); + sprintf (buf, "%s %s", GET_RTX_NAME (GET_CODE (x)), t1); break; case VAR_LOCATION: print_value (t1, PAT_VAR_LOCATION_LOC (x), verbose); @@ -657,151 +652,102 @@ print_pattern (char *buf, const_rtx x, int verbose) sprintf (buf, "trap_if %s", t1); break; case UNSPEC: - { - int i; - - sprintf (t1, "unspec{"); - for (i = 0; i < XVECLEN (x, 0); i++) - { - print_pattern (t2, XVECEXP (x, 0, i), verbose); - sprintf (t3, "%s%s;", t1, t2); - strcpy (t1, t3); - } - sprintf (buf, "%s}", t1); - } - break; case UNSPEC_VOLATILE: - { - int i; - - sprintf (t1, "unspec/v{"); - for (i = 0; i < XVECLEN (x, 0); i++) - { - print_pattern (t2, XVECEXP (x, 0, i), verbose); - sprintf (t3, "%s%s;", t1, t2); - strcpy (t1, t3); - } - sprintf (buf, "%s}", t1); - } - break; + /* Fallthru -- leave UNSPECs to print_exp. */ default: print_value (buf, x, verbose); } } /* print_pattern */ -/* This is the main function in rtl visualization mechanism. It - accepts an rtx and tries to recognize it as an insn, then prints it - properly in human readable form, resembling assembler mnemonics. - For every insn it prints its UID and BB the insn belongs too. - (Probably the last "option" should be extended somehow, since it - depends now on sched.c inner variables ...) */ +/* This is the main function in slim rtl visualization mechanism. + + X is an insn, to be printed into BUF. + + This function tries to print it properly in human-readable form, + resembling assembler mnemonics (instead of the older Lisp-style + form). + + If VERBOSE is TRUE, insns are printed with more complete (but + longer) pattern names and with extra information, and prefixed + with their INSN_UIDs. */ void print_insn (char *buf, const_rtx x, int verbose) { - char t[BUF_LEN]; - const_rtx insn = x; + /* Collect the string to output for X in t1. t2 is a scratch area. */ + char t1[BUF_LEN], t2[BUF_LEN]; switch (GET_CODE (x)) { case INSN: - print_pattern (t, PATTERN (x), verbose); -#ifdef INSN_SCHEDULING - if (verbose && current_sched_info) - sprintf (buf, "%s: %s", (*current_sched_info->print_insn) (x, 1), - t); - else -#endif - sprintf (buf, " %4d %s", INSN_UID (x), t); + print_pattern (t1, PATTERN (x), verbose); break; case DEBUG_INSN: { const char *name = "?"; - if (DECL_P (INSN_VAR_LOCATION_DECL (insn))) + if (DECL_P (INSN_VAR_LOCATION_DECL (x))) { - tree id = DECL_NAME (INSN_VAR_LOCATION_DECL (insn)); + tree id = DECL_NAME (INSN_VAR_LOCATION_DECL (x)); char idbuf[32]; if (id) name = IDENTIFIER_POINTER (id); - else if (TREE_CODE (INSN_VAR_LOCATION_DECL (insn)) + else if (TREE_CODE (INSN_VAR_LOCATION_DECL (x)) == DEBUG_EXPR_DECL) { sprintf (idbuf, "D#%i", - DEBUG_TEMP_UID (INSN_VAR_LOCATION_DECL (insn))); + DEBUG_TEMP_UID (INSN_VAR_LOCATION_DECL (x))); name = idbuf; } else { sprintf (idbuf, "D.%i", - DECL_UID (INSN_VAR_LOCATION_DECL (insn))); + DECL_UID (INSN_VAR_LOCATION_DECL (x))); name = idbuf; } } - if (VAR_LOC_UNKNOWN_P (INSN_VAR_LOCATION_LOC (insn))) - sprintf (buf, " %4d: debug %s optimized away", INSN_UID (insn), name); + if (VAR_LOC_UNKNOWN_P (INSN_VAR_LOCATION_LOC (x))) + sprintf (t1, "debug %s optimized away", name); else { - print_pattern (t, INSN_VAR_LOCATION_LOC (insn), verbose); - sprintf (buf, " %4d: debug %s => %s", INSN_UID (insn), name, t); + print_pattern (t2, INSN_VAR_LOCATION_LOC (x), verbose); + sprintf (t1, "debug %s => %s", name, t2); } } break; case JUMP_INSN: - print_pattern (t, PATTERN (x), verbose); -#ifdef INSN_SCHEDULING - if (verbose && current_sched_info) - sprintf (buf, "%s: jump %s", (*current_sched_info->print_insn) (x, 1), - t); - else -#endif - sprintf (buf, " %4d %s", INSN_UID (x), t); + print_pattern (t1, PATTERN (x), verbose); break; case CALL_INSN: - x = PATTERN (insn); - if (GET_CODE (x) == PARALLEL) - { - x = XVECEXP (x, 0, 0); - print_pattern (t, x, verbose); - } + if (GET_CODE (PATTERN (x)) == PARALLEL) + print_pattern (t1, XVECEXP (PATTERN (x), 0, 0), verbose); else - strcpy (t, "call <...>"); -#ifdef INSN_SCHEDULING - if (verbose && current_sched_info) - sprintf (buf, "%s: %s", (*current_sched_info->print_insn) (insn, 1), t); - else -#endif - sprintf (buf, " %4d %s", INSN_UID (insn), t); + print_pattern (t1, PATTERN (x), verbose); break; case CODE_LABEL: - sprintf (buf, "L%d:", INSN_UID (x)); + sprintf (t1, "L%d:", INSN_UID (x)); break; case BARRIER: - sprintf (buf, "i%4d: barrier", INSN_UID (x)); + sprintf (t1, "barrier"); break; case NOTE: { - int uid = INSN_UID (x); - const char *note_name = GET_NOTE_INSN_NAME (NOTE_KIND (x)); switch (NOTE_KIND (x)) { case NOTE_INSN_EH_REGION_BEG: case NOTE_INSN_EH_REGION_END: - sprintf (buf, " %4d %s %d", uid, note_name, - NOTE_EH_HANDLER (x)); + sprintf (t2, "%d", NOTE_EH_HANDLER (x)); break; case NOTE_INSN_BLOCK_BEG: case NOTE_INSN_BLOCK_END: - sprintf (buf, " %4d %s %d", uid, note_name, - BLOCK_NUMBER (NOTE_BLOCK (x))); + sprintf (t2, "%d", BLOCK_NUMBER (NOTE_BLOCK (x))); break; case NOTE_INSN_BASIC_BLOCK: - sprintf (buf, " %4d %s %d", uid, note_name, - NOTE_BASIC_BLOCK (x)->index); + sprintf (t2, "%d", NOTE_BASIC_BLOCK (x)->index); break; case NOTE_INSN_DELETED_LABEL: @@ -810,26 +756,35 @@ print_insn (char *buf, const_rtx x, int verbose) const char *label = NOTE_DELETED_LABEL_NAME (x); if (label == NULL) label = ""; - sprintf (buf, " %4d %s (\"%s\")", uid, note_name, label); + sprintf (t2, "(\"%s\")", label); } break; case NOTE_INSN_VAR_LOCATION: - print_pattern (t, NOTE_VAR_LOCATION (x), verbose); - sprintf (buf, " %4d %s {%s}", uid, note_name, t); + case NOTE_INSN_CALL_ARG_LOCATION: + /* It's safe here to use t1 for scratch because the output + is printed in t2 and put back in t1 at the bottom of + the inner switch statement. */ + print_pattern (t1, NOTE_VAR_LOCATION (x), verbose); + sprintf (t2, "{%s}", t1); break; default: - sprintf (buf, " %4d %s", uid, note_name); + t2[0] = '\0'; break; } + sprintf (t1, "%s %s", GET_NOTE_INSN_NAME (NOTE_KIND (x)), t2); break; } default: - sprintf (buf, "i%4d <What %s?>", INSN_UID (x), - GET_RTX_NAME (GET_CODE (x))); + sprintf (t1, "<What %s?>", GET_RTX_NAME (GET_CODE (x))); break; } + + if (verbose) + sprintf (buf, " %4d: %s", INSN_UID (x), t1); + else + sprintf (buf, "%s", t1); } /* print_insn */ /* Emit a slim dump of X (an insn) to the file F, including any register @@ -854,20 +809,12 @@ dump_insn_slim (FILE *f, const_rtx x) } } -/* Emit a slim dump of X (an insn) to stderr. */ -extern void debug_insn_slim (const_rtx); -DEBUG_FUNCTION void -debug_insn_slim (const_rtx x) -{ - dump_insn_slim (stderr, x); -} - /* Same as above, but stop at LAST or when COUNT == 0. If COUNT < 0 it will stop only at LAST or NULL rtx. */ -extern void debug_rtl_slim (FILE *, const_rtx, const_rtx, int, int); -DEBUG_FUNCTION void -debug_rtl_slim (FILE *f, const_rtx first, const_rtx last, - int count, int flags ATTRIBUTE_UNUSED) + +void +dump_rtl_slim (FILE *f, const_rtx first, const_rtx last, + int count, int flags ATTRIBUTE_UNUSED) { const_rtx insn, tail; @@ -882,6 +829,22 @@ debug_rtl_slim (FILE *f, const_rtx first, const_rtx last, } } +/* Emit a slim dump of X (an insn) to stderr. */ +extern void debug_insn_slim (const_rtx); +DEBUG_FUNCTION void +debug_insn_slim (const_rtx x) +{ + dump_insn_slim (stderr, x); +} + +/* Same as above, but using dump_rtl_slim. */ +extern void debug_rtl_slim (FILE *, const_rtx, const_rtx, int, int); +DEBUG_FUNCTION void +debug_rtl_slim (const_rtx first, const_rtx last, int count, int flags) +{ + dump_rtl_slim (stderr, first, last, count, flags); +} + extern void debug_bb_slim (basic_block); DEBUG_FUNCTION void debug_bb_slim (basic_block bb) |