aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-10-31 14:08:40 +0000
committerJeff Law <law@gcc.gnu.org>1997-10-31 07:08:40 -0700
commit8c316ae21c35468696948951be572bc9a694ad57 (patch)
treea325c410b9eceef699ee9d3da81502c7c98c9757 /gcc
parent6874c2647b322a34cd25c74c2cf2d0b374683df7 (diff)
downloadgcc-8c316ae21c35468696948951be572bc9a694ad57.zip
gcc-8c316ae21c35468696948951be572bc9a694ad57.tar.gz
gcc-8c316ae21c35468696948951be572bc9a694ad57.tar.bz2
global.c (global_alloc): Free the conflict matrix after reload has finished.
* global.c (global_alloc): Free the conflict matrix after reload has finished. From-SVN: r16249
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/global.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 540f17f..bf224c6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/global.c b/gcc/global.c
index 0480ebf..87acccb 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -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.