diff options
author | Richard Henderson <rth@redhat.com> | 2005-10-06 01:41:47 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-10-06 01:41:47 -0700 |
commit | 5872662b0b0cc334e777f97950c422d906925abc (patch) | |
tree | d1913967ded94d597e0e5a0d02483cb68dbbe9ab /gcc/passes.c | |
parent | d6b27b56a238b4345b54627d5ee41c85adf05ea1 (diff) | |
download | gcc-5872662b0b0cc334e777f97950c422d906925abc.zip gcc-5872662b0b0cc334e777f97950c422d906925abc.tar.gz gcc-5872662b0b0cc334e777f97950c422d906925abc.tar.bz2 |
re PR middle-end/24049 (compiler error: Segmentation fault In function 'DESX_CBCUpdate')
PR 24049
* passes.c (init_optimization_passes): Move pass_lower_vector_ssa
under pass_vectorize. Clear TODO_ggc_collect from the dce pass
under pass_vectorize.
From-SVN: r105029
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index b03eae3..daa752e 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -588,14 +588,19 @@ init_optimization_passes (void) /* NEXT_PASS (pass_may_alias) cannot be done again because the vectorizer creates alias relations that are not supported by pass_may_alias. */ - NEXT_PASS (pass_lower_vector_ssa); NEXT_PASS (pass_complete_unroll); NEXT_PASS (pass_iv_optimize); NEXT_PASS (pass_tree_loop_done); *p = NULL; p = &pass_vectorize.sub; + NEXT_PASS (pass_lower_vector_ssa); + /* ??? The loop optimizers are not GC safe. See PR 21805. + Turn off GC while registering this pass. */ + pass_dce.todo_flags_finish &= ~TODO_ggc_collect; NEXT_PASS (pass_dce); + pass_dce.todo_flags_finish |= TODO_ggc_collect; + gcc_assert (p != &pass_dce.next); *p = NULL; p = &pass_loop2.sub; |