OSDN Git Service

* cfg.c (dump_flow_info): Skip register dump if reg_n_info null.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Sep 2003 23:45:59 +0000 (23:45 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Sep 2003 23:45:59 +0000 (23:45 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71485 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cfg.c

index fd13355..548c73d 100644 (file)
@@ -1,3 +1,7 @@
+2003-09-17  Richard Henderson  <rth@redhat.com>
+
+       * cfg.c (dump_flow_info): Skip register dump if reg_n_info null.
+
 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag.
index 2089674..ded0e32 100644 (file)
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -491,48 +491,49 @@ dump_flow_info (FILE *file)
   static const char * const reg_class_names[] = REG_CLASS_NAMES;
 
   fprintf (file, "%d registers.\n", max_regno);
-  for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
-    if (REG_N_REFS (i))
-      {
-       enum reg_class class, altclass;
-
-       fprintf (file, "\nRegister %d used %d times across %d insns",
-                i, REG_N_REFS (i), REG_LIVE_LENGTH (i));
-       if (REG_BASIC_BLOCK (i) >= 0)
-         fprintf (file, " in block %d", REG_BASIC_BLOCK (i));
-       if (REG_N_SETS (i))
-         fprintf (file, "; set %d time%s", REG_N_SETS (i),
-                  (REG_N_SETS (i) == 1) ? "" : "s");
-       if (regno_reg_rtx[i] != NULL && REG_USERVAR_P (regno_reg_rtx[i]))
-         fprintf (file, "; user var");
-       if (REG_N_DEATHS (i) != 1)
-         fprintf (file, "; dies in %d places", REG_N_DEATHS (i));
-       if (REG_N_CALLS_CROSSED (i) == 1)
-         fprintf (file, "; crosses 1 call");
-       else if (REG_N_CALLS_CROSSED (i))
-         fprintf (file, "; crosses %d calls", REG_N_CALLS_CROSSED (i));
-       if (regno_reg_rtx[i] != NULL
-           && PSEUDO_REGNO_BYTES (i) != UNITS_PER_WORD)
-         fprintf (file, "; %d bytes", PSEUDO_REGNO_BYTES (i));
-
-       class = reg_preferred_class (i);
-       altclass = reg_alternate_class (i);
-       if (class != GENERAL_REGS || altclass != ALL_REGS)
-         {
-           if (altclass == ALL_REGS || class == ALL_REGS)
-             fprintf (file, "; pref %s", reg_class_names[(int) class]);
-           else if (altclass == NO_REGS)
-             fprintf (file, "; %s or none", reg_class_names[(int) class]);
-           else
-             fprintf (file, "; pref %s, else %s",
-                      reg_class_names[(int) class],
-                      reg_class_names[(int) altclass]);
-         }
+  if (reg_n_info)
+    for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
+      if (REG_N_REFS (i))
+       {
+         enum reg_class class, altclass;
+
+         fprintf (file, "\nRegister %d used %d times across %d insns",
+                  i, REG_N_REFS (i), REG_LIVE_LENGTH (i));
+         if (REG_BASIC_BLOCK (i) >= 0)
+           fprintf (file, " in block %d", REG_BASIC_BLOCK (i));
+         if (REG_N_SETS (i))
+           fprintf (file, "; set %d time%s", REG_N_SETS (i),
+                    (REG_N_SETS (i) == 1) ? "" : "s");
+         if (regno_reg_rtx[i] != NULL && REG_USERVAR_P (regno_reg_rtx[i]))
+           fprintf (file, "; user var");
+         if (REG_N_DEATHS (i) != 1)
+           fprintf (file, "; dies in %d places", REG_N_DEATHS (i));
+         if (REG_N_CALLS_CROSSED (i) == 1)
+           fprintf (file, "; crosses 1 call");
+         else if (REG_N_CALLS_CROSSED (i))
+           fprintf (file, "; crosses %d calls", REG_N_CALLS_CROSSED (i));
+         if (regno_reg_rtx[i] != NULL
+             && PSEUDO_REGNO_BYTES (i) != UNITS_PER_WORD)
+           fprintf (file, "; %d bytes", PSEUDO_REGNO_BYTES (i));
+
+         class = reg_preferred_class (i);
+         altclass = reg_alternate_class (i);
+         if (class != GENERAL_REGS || altclass != ALL_REGS)
+           {
+             if (altclass == ALL_REGS || class == ALL_REGS)
+               fprintf (file, "; pref %s", reg_class_names[(int) class]);
+             else if (altclass == NO_REGS)
+               fprintf (file, "; %s or none", reg_class_names[(int) class]);
+             else
+               fprintf (file, "; pref %s, else %s",
+                        reg_class_names[(int) class],
+                        reg_class_names[(int) altclass]);
+           }
 
-       if (regno_reg_rtx[i] != NULL && REG_POINTER (regno_reg_rtx[i]))
-         fprintf (file, "; pointer");
-       fprintf (file, ".\n");
-      }
+         if (regno_reg_rtx[i] != NULL && REG_POINTER (regno_reg_rtx[i]))
+           fprintf (file, "; pointer");
+         fprintf (file, ".\n");
+       }
 
   fprintf (file, "\n%d basic blocks, %d edges.\n", n_basic_blocks, n_edges);
   FOR_EACH_BB (bb)