OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / print-rtl.c
index 75f0343..96e1485 100644 (file)
@@ -1,6 +1,6 @@
 /* Print RTL for GCC.
    Copyright (C) 1987, 1988, 1992, 1997, 1998, 1999, 2000, 2002, 2003,
-   2004, 2005, 2007, 2008, 2009
+   2004, 2005, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -36,11 +36,11 @@ along with GCC; see the file COPYING3.  If not see
    generator programs.  */
 #ifndef GENERATOR_FILE
 #include "tree.h"
-#include "real.h"
 #include "flags.h"
 #include "hard-reg-set.h"
 #include "basic-block.h"
 #include "diagnostic.h"
+#include "tree-pretty-print.h"
 #include "cselib.h"
 #include "tree-pass.h"
 #endif
@@ -236,7 +236,7 @@ print_rtx (const_rtx in_rtx)
          {
            int flags = SYMBOL_REF_FLAGS (in_rtx);
            if (flags)
-             fprintf (outfile, " [flags 0x%x]", flags);
+             fprintf (outfile, " [flags %#x]", flags);
          }
        else if (i == 2 && GET_CODE (in_rtx) == SYMBOL_REF)
          {
@@ -316,7 +316,7 @@ print_rtx (const_rtx in_rtx)
 #ifndef GENERATOR_FILE
            cselib_val *val = CSELIB_VAL_PTR (in_rtx);
 
-           fprintf (outfile, " %i", val->value);
+           fprintf (outfile, " %u:%u", val->uid, val->hash);
            dump_addr (outfile, " @", in_rtx);
            dump_addr (outfile, "/", (void*)val);
 #endif
@@ -411,6 +411,21 @@ print_rtx (const_rtx in_rtx)
            if (NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_LABEL)
              fprintf (outfile, " %d",  XINT (in_rtx, i));
          }
+#if !defined(GENERATOR_FILE) && NUM_UNSPECV_VALUES > 0
+       else if (i == 1
+                && GET_CODE (in_rtx) == UNSPEC_VOLATILE
+                && XINT (in_rtx, 1) >= 0
+                && XINT (in_rtx, 1) < NUM_UNSPECV_VALUES)
+         fprintf (outfile, " %s", unspecv_strings[XINT (in_rtx, 1)]);
+#endif
+#if !defined(GENERATOR_FILE) && NUM_UNSPEC_VALUES > 0
+       else if (i == 1
+                && (GET_CODE (in_rtx) == UNSPEC
+                    || GET_CODE (in_rtx) == UNSPEC_VOLATILE)
+                && XINT (in_rtx, 1) >= 0
+                && XINT (in_rtx, 1) < NUM_UNSPEC_VALUES)
+         fprintf (outfile, " %s", unspec_strings[XINT (in_rtx, 1)]);
+#endif
        else
          {
            int value = XINT (in_rtx, i);
@@ -512,16 +527,6 @@ print_rtx (const_rtx in_rtx)
        sawclose = 0;
        break;
 
-      case 'b':
-#ifndef GENERATOR_FILE
-       if (XBITMAP (in_rtx, i) == NULL)
-         fputs (" {null}", outfile);
-       else
-         bitmap_print (outfile, XBITMAP (in_rtx, i), " {", "}");
-#endif
-       sawclose = 0;
-       break;
-
       case 't':
 #ifndef GENERATOR_FILE
        dump_addr (outfile, " ", XTREE (in_rtx, i));
@@ -548,8 +553,11 @@ print_rtx (const_rtx in_rtx)
     {
 #ifndef GENERATOR_FILE
     case MEM:
-      fprintf (outfile, " [" HOST_WIDE_INT_PRINT_DEC,
-              (HOST_WIDE_INT) MEM_ALIAS_SET (in_rtx));
+      if (__builtin_expect (final_insns_dump_p, false))
+       fprintf (outfile, " [");
+      else
+       fprintf (outfile, " [" HOST_WIDE_INT_PRINT_DEC,
+                (HOST_WIDE_INT) MEM_ALIAS_SET (in_rtx));
 
       if (MEM_EXPR (in_rtx))
        print_mem_expr (outfile, MEM_EXPR (in_rtx));
@@ -633,7 +641,7 @@ print_inline_rtx (FILE *outf, const_rtx x, int ind)
 
 /* Call this function from the debugger to see what X looks like.  */
 
-void
+DEBUG_FUNCTION void
 debug_rtx (const_rtx x)
 {
   outfile = stderr;
@@ -645,7 +653,7 @@ debug_rtx (const_rtx x)
 /* Count of rtx's to print with debug_rtx_list.
    This global exists because gdb user defined commands have no arguments.  */
 
-int debug_rtx_count = 0;       /* 0 is treated as equivalent to 1 */
+DEBUG_VARIABLE int debug_rtx_count = 0;        /* 0 is treated as equivalent to 1 */
 
 /* Call this function to print list from X on.
 
@@ -653,7 +661,7 @@ int debug_rtx_count = 0;    /* 0 is treated as equivalent to 1 */
    rtx on.  Negative values print a window around the rtx.
    EG: -5 prints 2 rtx's on either side (in addition to the specified rtx).  */
 
-void
+DEBUG_FUNCTION void
 debug_rtx_list (const_rtx x, int n)
 {
   int i,count;
@@ -680,7 +688,7 @@ debug_rtx_list (const_rtx x, int n)
 
 /* Call this function to print an rtx list from START to END inclusive.  */
 
-void
+DEBUG_FUNCTION void
 debug_rtx_range (const_rtx start, const_rtx end)
 {
   while (1)
@@ -697,7 +705,7 @@ debug_rtx_range (const_rtx start, const_rtx end)
    and then call debug_rtx_list to print it, using DEBUG_RTX_COUNT.
    The found insn is returned to enable further debugging analysis.  */
 
-const_rtx
+DEBUG_FUNCTION const_rtx
 debug_rtx_find (const_rtx x, int uid)
 {
   while (x != 0 && INSN_UID (x) != uid)