aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-10-28 00:06:22 +0000
committerJeff Law <law@gcc.gnu.org>1998-10-27 17:06:22 -0700
commite0c6d139a1ec551d14becfb6b36c0129d18d2791 (patch)
tree3184854ceaea3198aea54372f744aace3c6590dc
parentfebc6f831a2bc4eabee27cc3e221efa48bd03c94 (diff)
downloadgcc-e0c6d139a1ec551d14becfb6b36c0129d18d2791.zip
gcc-e0c6d139a1ec551d14becfb6b36c0129d18d2791.tar.gz
gcc-e0c6d139a1ec551d14becfb6b36c0129d18d2791.tar.bz2
toplev.c (compile_file): Call allocate_reg_info to free register table memory.
* toplev.c (compile_file): Call allocate_reg_info to free register table memory. * rtl.h (allocate_reg_info): Declare. From-SVN: r23384
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/rtl.h3
-rw-r--r--gcc/toplev.c4
3 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a07b16a..6d32f11 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,10 @@
Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com)
+ * toplev.c (compile_file): Call allocate_reg_info to free register
+ table memory.
+ * rtl.h (allocate_reg_info): Declare.
+
* PROJECTS: Remove entry for local spilling.
* final.c (cleanup_subreg_operands): New function.
diff --git a/gcc/rtl.h b/gcc/rtl.h
index d655d4e..0d7ffb7 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1009,6 +1009,9 @@ extern rtx find_use_as_address PROTO((rtx, rtx, HOST_WIDE_INT));
extern int max_parallel;
+/* Free up register info memory. */
+extern void allocate_reg_info PROTO((size_t, int, int));
+
/* recog.c */
extern int asm_noperands PROTO((rtx));
extern char *decode_asm_operands PROTO((rtx, rtx *, rtx **, char **, enum machine_mode *));
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 64ef43e..24b7c5c 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3067,6 +3067,7 @@ compile_file (name)
ASM_FILE_END (asm_out_file);
#endif
+
/* Language-specific end of compilation actions. */
finish_syntax:
lang_finish ();
@@ -3097,6 +3098,9 @@ compile_file (name)
&& (ferror (asm_out_file) != 0 || fclose (asm_out_file) != 0))
fatal_io_error (asm_file_name);
+ /* Free up memory for the benefit of leak detectors. */
+ allocate_reg_info (-1, 0, 0);
+
/* Print the times. */
if (! quiet_flag)