+ sprintf (buf, "i%4d <What %s?>", INSN_UID (x),
+ GET_RTX_NAME (GET_CODE (x)));
+ }
+} /* print_insn */
+
+/* Emit a slim dump of X (an insn) to the file F, including any register
+ note attached to the instruction. */
+void
+dump_insn_slim (FILE *f, rtx x)
+{
+ char t[BUF_LEN + 32];
+ rtx note;
+
+ print_insn (t, x, 1);
+ fputs (t, f);
+ putc ('\n', f);
+ if (INSN_P (x) && REG_NOTES (x))
+ for (note = REG_NOTES (x); note; note = XEXP (note, 1))
+ {
+ print_value (t, XEXP (note, 0), 1);
+ fprintf (f, " %s: %s\n",
+ GET_REG_NOTE_NAME (REG_NOTE_KIND (note)), t);
+ }
+}
+
+/* Emit a slim dump of X (an insn) to stderr. */
+void
+debug_insn_slim (rtx x)
+{
+ dump_insn_slim (stderr, x);
+}
+
+/* Provide a slim dump the instruction chain starting at FIRST to F, honoring
+ the dump flags given in FLAGS. Currently, TDF_BLOCKS and TDF_DETAILS
+ include more information on the basic blocks. */
+void
+print_rtl_slim_with_bb (FILE *f, rtx first, int flags)
+{
+ print_rtl_slim (f, first, NULL, -1, flags);
+}
+
+/* Same as above, but stop at LAST or when COUNT == 0.
+ If COUNT < 0 it will stop only at LAST or NULL rtx. */
+void
+print_rtl_slim (FILE *f, rtx first, rtx last, int count, int flags)
+{
+ basic_block current_bb = NULL;
+ rtx insn, tail;
+
+ tail = last ? NEXT_INSN (last) : NULL_RTX;
+ for (insn = first;
+ (insn != NULL) && (insn != tail) && (count != 0);
+ insn = NEXT_INSN (insn))
+ {
+ if ((flags & TDF_BLOCKS)
+ && (INSN_P (insn) || NOTE_P (insn))
+ && BLOCK_FOR_INSN (insn)
+ && !current_bb)