global.c (global_alloc): Free the conflict matrix after reload has finished.
authorJeffrey A Law <law@cygnus.com>
Fri, 31 Oct 1997 14:08:40 +0000 (14:08 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 31 Oct 1997 14:08:40 +0000 (07:08 -0700)
        * global.c (global_alloc): Free the conflict matrix after
        reload has finished.

From-SVN: r16249

gcc/ChangeLog
gcc/global.c

index 540f17f..bf224c6 100644 (file)
@@ -1,3 +1,8 @@
+Fri Oct 31 07:10:09 1997  Jeffrey A Law  (law@cygnus.com)
+
+       * global.c (global_alloc): Free the conflict matrix after
+       reload has finished.
+
 Fri Oct 31 01:45:31 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
        * libgcc2.c (L_eh): Define __eh_pc.
index 0480ebf..87acccb 100644 (file)
@@ -277,6 +277,7 @@ int
 global_alloc (file)
      FILE *file;
 {
+  int retval;
 #ifdef ELIMINABLE_REGS
   static struct {int from, to; } eliminables[] = ELIMINABLE_REGS;
 #endif
@@ -573,8 +574,6 @@ global_alloc (file)
          }
     }
 
-  free (conflicts);
-
   /* Do the reloads now while the allocno data still exist, so that we can
      try to assign new hard regs to any pseudo regs that are spilled.  */
 
@@ -582,7 +581,10 @@ global_alloc (file)
         for the sake of debugging information.  */
   if (n_basic_blocks > 0)
 #endif
-    return reload (get_insns (), 1, file);
+    retval = reload (get_insns (), 1, file);
+
+  free (conflicts);
+  return retval;
 }
 
 /* Sort predicate for ordering the allocnos.