diff options
author | Richard Henderson <rth@cygnus.com> | 1999-09-11 23:26:04 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-09-11 23:26:04 -0700 |
commit | 1497faf6be0086785ed49a0fd0177d78d9ce346c (patch) | |
tree | 8ec63ee7e8e66c5bb736d50e494319ac6ca8900d /gcc/cse.c | |
parent | 0172a8f1f4d500b89ae32fb9155f51bb169f036f (diff) | |
download | gcc-1497faf6be0086785ed49a0fd0177d78d9ce346c.zip gcc-1497faf6be0086785ed49a0fd0177d78d9ce346c.tar.gz gcc-1497faf6be0086785ed49a0fd0177d78d9ce346c.tar.bz2 |
* cse.c (cse_main): If gc'ing, collect around cse_basic_block.
From-SVN: r29354
Diffstat (limited to 'gcc/cse.c')
-rw-r--r-- | gcc/cse.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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; |