From 1497faf6be0086785ed49a0fd0177d78d9ce346c Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 11 Sep 1999 23:26:04 -0700 Subject: [PATCH] * cse.c (cse_main): If gc'ing, collect around cse_basic_block. From-SVN: r29354 --- gcc/ChangeLog | 7 +++++++ gcc/cse.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ae375459269..c050d119ff9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Sat Sep 11 23:23:46 1999 Richard Henderson + + * cse.c (cse_main): If gc'ing, collect around cse_basic_block. + + * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into + surrounding context. + Sat Sep 11 19:52:43 1999 Mark Mitchell * tree.c (type_hash_canon): Put all types in the hash-table, when diff --git a/gcc/cse.c b/gcc/cse.c index 2065833e209..e07e3384cc8 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -36,6 +36,7 @@ Boston, MA 02111-1307, USA. */ #include "toplev.h" #include "output.h" #include "splay-tree.h" +#include "ggc.h" /* The basic idea of common subexpression elimination is to go through the code, keeping a record of expressions that would @@ -8730,6 +8731,9 @@ cse_main (f, nregs, after_loop, file) || global_regs[i]) SET_HARD_REG_BIT (regs_invalidated_by_call, i); + if (ggc_p) + ggc_push_context (); + /* Loop over basic blocks. Compute the maximum number of qty's needed for each basic block (which is 2 for each SET). */ @@ -8786,11 +8790,17 @@ cse_main (f, nregs, after_loop, file) cse_jumps_altered |= old_cse_jumps_altered; } + if (ggc_p) + ggc_collect (); + #ifdef USE_C_ALLOCA alloca (0); #endif } + if (ggc_p) + ggc_pop_context (); + /* Tell refers_to_mem_p that qty_const info is not available. */ qty_const = 0; -- 2.30.2