]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* rtl.h (print_simple_rtl): New.
authorm.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jan 2001 23:30:02 +0000 (23:30 +0000)
committerm.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jan 2001 23:30:02 +0000 (23:30 +0000)
* print-rtl.c (print_simple_rtl): New.
(flag_simple): New.
(print_rtx): Disable printing of flags and modes, etc.,
        if `flag_simple` nonzero.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38730 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/print-rtl.c
gcc/rtl.h

index 24a5448cc1fc85dfc91b2ae6c7f9150e835afba6..7c224ee9fdf93b91353e929ba26146e18660f33f 100644 (file)
@@ -1,3 +1,11 @@
+2001-01-06  Michael Hayes  <mhayes@redhat.com>
+
+       * rtl.h (print_simple_rtl): New.
+       * print-rtl.c (print_simple_rtl): New.
+       (flag_simple): New.
+       (print_rtx): Disable printing of flags and modes, etc.,
+        if `flag_simple` nonzero.
+
 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
 
        * function.c (fixup_var_refs): Use push_to_full_sequence where
index 502834dd81a8463ef2afcb70b7294a0c4697250e..23d889a873ba34948be1935ec170a7f3aa37b16f 100644 (file)
@@ -65,6 +65,9 @@ const char *print_rtx_head = "";
    This must be defined here so that programs like gencodes can be linked.  */
 int flag_dump_unnumbered = 0;
 
+/* Nonzero means use simplified format without flags, modes, etc.  */
+int flag_simple = 0;
+
 /* Nonzero if we are dumping graphical description.  */
 int dump_for_graph;
 
@@ -85,9 +88,12 @@ print_rtx (in_rtx)
 
   if (sawclose)
     {
-      fprintf (outfile, "\n%s%s",
-               print_rtx_head,
-              (xspaces + (sizeof xspaces - 1 - indent * 2)));
+      if (flag_simple)
+       fputc (' ', outfile);
+      else
+       fprintf (outfile, "\n%s%s",
+                print_rtx_head,
+                (xspaces + (sizeof xspaces - 1 - indent * 2)));
       sawclose = 0;
     }
 
@@ -112,36 +118,44 @@ print_rtx (in_rtx)
   else
     {
       /* print name of expression code */
-      fprintf (outfile, "(%s", GET_RTX_NAME (GET_CODE (in_rtx)));
-
-      if (in_rtx->in_struct)
-       fputs ("/s", outfile);
-
-      if (in_rtx->volatil)
-       fputs ("/v", outfile);
-
-      if (in_rtx->unchanging)
-       fputs ("/u", outfile);
-
-      if (in_rtx->integrated)
-       fputs ("/i", outfile);
-
-      if (in_rtx->frame_related)
-       fputs ("/f", outfile);
-
-      if (in_rtx->jump)
-       fputs ("/j", outfile);
-
-      if (in_rtx->call)
-       fputs ("/c", outfile);
-
-      if (GET_MODE (in_rtx) != VOIDmode)
+      if (flag_simple && GET_CODE (in_rtx) == CONST_INT)
+       fputc ('(', outfile);
+      else
+       fprintf (outfile, "(%s", GET_RTX_NAME (GET_CODE (in_rtx)));
+      
+      if (! flag_simple)
        {
-         /* Print REG_NOTE names for EXPR_LIST and INSN_LIST.  */
-         if (GET_CODE (in_rtx) == EXPR_LIST || GET_CODE (in_rtx) == INSN_LIST)
-           fprintf (outfile, ":%s", GET_REG_NOTE_NAME (GET_MODE (in_rtx)));
-         else
-           fprintf (outfile, ":%s", GET_MODE_NAME (GET_MODE (in_rtx)));
+         if (in_rtx->in_struct)
+           fputs ("/s", outfile);
+
+         if (in_rtx->volatil)
+           fputs ("/v", outfile);
+         
+         if (in_rtx->unchanging)
+           fputs ("/u", outfile);
+         
+         if (in_rtx->integrated)
+           fputs ("/i", outfile);
+         
+         if (in_rtx->frame_related)
+           fputs ("/f", outfile);
+         
+         if (in_rtx->jump)
+           fputs ("/j", outfile);
+         
+         if (in_rtx->call)
+           fputs ("/c", outfile);
+
+         if (GET_MODE (in_rtx) != VOIDmode)
+           {
+             /* Print REG_NOTE names for EXPR_LIST and INSN_LIST.  */
+             if (GET_CODE (in_rtx) == EXPR_LIST 
+                 || GET_CODE (in_rtx) == INSN_LIST)
+               fprintf (outfile, ":%s",
+                        GET_REG_NOTE_NAME (GET_MODE (in_rtx)));
+             else
+               fprintf (outfile, ":%s", GET_MODE_NAME (GET_MODE (in_rtx)));
+           }
        }
     }
 
@@ -296,11 +310,15 @@ print_rtx (in_rtx)
        break;
 
       case 'w':
-       fprintf (outfile, " ");
+       if (! flag_simple)
+         fprintf (outfile, " ");
        fprintf (outfile, HOST_WIDE_INT_PRINT_DEC, XWINT (in_rtx, i));
-       fprintf (outfile, " [");
-       fprintf (outfile, HOST_WIDE_INT_PRINT_HEX, XWINT (in_rtx, i));
-       fprintf (outfile, "]");
+       if (! flag_simple)
+         {
+           fprintf (outfile, " [");
+           fprintf (outfile, HOST_WIDE_INT_PRINT_HEX, XWINT (in_rtx, i));
+           fprintf (outfile, "]");
+         }
        break;
 
       case 'i':
@@ -663,3 +681,17 @@ print_rtl_single (outf, x)
     }
   return 0;
 }
+
+
+/* Like print_rtl except without all the detail; for example,
+   if RTX is a CONST_INT then print in decimal format.  */
+
+void
+print_simple_rtl (outf, x)
+     FILE *outf;
+     rtx x;
+{
+  flag_simple = 1;
+  print_rtl (outf, x);
+  flag_simple = 0;
+}
index bb353be4dfbfa8744de3cd1ac453106ff412aae4..972dbd48d7cef8f9d4d72d570c950d5e8cbb4e97 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1778,6 +1778,7 @@ extern void debug_rtx_range               PARAMS ((rtx, rtx));
 extern rtx debug_rtx_find              PARAMS ((rtx, int));
 #ifdef BUFSIZ
 extern void print_rtl                  PARAMS ((FILE *, rtx));
+extern void print_simple_rtl           PARAMS ((FILE *, rtx));
 extern int print_rtl_single            PARAMS ((FILE *, rtx));
 extern void print_inline_rtx           PARAMS ((FILE *, rtx, int));
 #endif