LRA outputs a lot debug information about insns. I found that using slim insn/rtl presentation helps a lot for LRA debuging. The following patch makes slim presentation printing functions visible to LRA. It also implements one more such function.

2012-09-27  Vladimir Makarov  <vmaka...@redhat.com>

    * rtl.h (debug_bb_n_slim, debug_bb_slim, print_value_slim): New
    prototypes.
    (debug_rtl_slim, debug_insn_slim): Ditto.
    * sched-vis.c (print_value_slim): New.

Index: rtl.h
===================================================================
--- rtl.h	(revision 191771)
+++ rtl.h	(working copy)
@@ -2487,7 +2487,12 @@ extern rtx make_compound_operation (rtx,
 extern void delete_dead_jumptables (void);
 
 /* In sched-vis.c.  */
-extern void dump_insn_slim (FILE *, const_rtx x);
+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);
Index: sched-vis.c
===================================================================
--- sched-vis.c	(revision 191771)
+++ sched-vis.c	(working copy)
@@ -546,6 +546,19 @@ print_value (char *buf, const_rtx x, int
     }
 }				/* print_value */
 
+/* Prints rtxes, I customarily classified as values.  They're
+   constants, registers, labels, symbols and memory accesses.  Print
+   them to file F.  */
+
+void
+print_value_slim (FILE *f, const_rtx x, int verbose)
+{
+  char buf[BUF_LEN];
+
+  print_value (buf, x, verbose);
+  fprintf (f, "%s", buf);
+}
+
 /* The next step in insn detalization, its pattern recognition.  */
 
 void

Reply via email to