aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-01-20 17:55:56 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2004-01-20 16:55:56 +0000
commitc8b6fae38838f18fb015c4b46b4b2f9b462acbf3 (patch)
treef831fe7ea8555f233d14c3f45870559afee812ef
parent04bf686df7a11a874c79c7e3c0001ff3f523109d (diff)
downloadgcc-c8b6fae38838f18fb015c4b46b4b2f9b462acbf3.zip
gcc-c8b6fae38838f18fb015c4b46b4b2f9b462acbf3.tar.gz
gcc-c8b6fae38838f18fb015c4b46b4b2f9b462acbf3.tar.bz2
re PR rtl-optimization/12440 (gcc 3.3.1 on i386 linux 2.4.22 crashes during compilation of quicktime4linux 2.0.0)
PR optimization/12440 * loop.c: Include ggc.h. (loop_optimize): Run garbage collector between optimization of loops. * Makefile.in (loop.o): Add GGC_H dependency. From-SVN: r76213
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/Makefile.in2
-rw-r--r--gcc/loop.c6
3 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2a47a1b..f5565dc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ PR optimization/12440
+ * loop.c: Include ggc.h.
+ (loop_optimize): Run garbage collector between optimization of loops.
+ * Makefile.in (loop.o): Add GGC_H dependency.
+
2004-01-20 Hartmut Penner <hpenner@de.ibm.com>
* gcc/config/rs6000/rs6000.c (function_arg) Handle
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index a48a4f5..7ace8ce 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1668,7 +1668,7 @@ value-prof.o : value-prof.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H)
loop.o : loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) flags.h $(LOOP_H) \
insn-config.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) \
real.h $(PREDICT_H) $(BASIC_BLOCK_H) function.h cfgloop.h \
- toplev.h varray.h except.h cselib.h $(OPTABS_H) $(TM_P_H)
+ toplev.h varray.h except.h cselib.h $(OPTABS_H) $(TM_P_H) $(GGC_H)
doloop.o : doloop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) flags.h \
$(LOOP_H) $(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) toplev.h \
cfgloop.h
diff --git a/gcc/loop.c b/gcc/loop.c
index 0892724..8e5cc44 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -65,6 +65,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "insn-flags.h"
#include "optabs.h"
#include "cfgloop.h"
+#include "ggc.h"
/* Not really meaningful values, but at least something. */
#ifndef SIMULTANEOUS_PREFETCHES
@@ -534,7 +535,10 @@ loop_optimize (rtx f, FILE *dumpfile, int flags)
struct loop *loop = &loops->array[i];
if (! loop->invalid && loop->end)
- scan_loop (loop, flags);
+ {
+ scan_loop (loop, flags);
+ ggc_collect ();
+ }
}
end_alias_analysis ();