This is the mail archive of the
mailing list for the GCC project.
Re: [patch] PR21639 fix
On Thu, 2005-05-26 at 15:01 +0300, Dorit Naishlos wrote:
> The "scalar_evolution_info" hash-table gets corrupted during pass
> 'lower_vector_ssa'. What happens is that during vectorization analysis new
> entries in the hash-table are created, but the call to ggc_collect in the
> subsequent pass 'lower_vector_ssa' frees up this data. Later on
> complete-loop-unroll ICEs when using the data in the hash-table. This
> happens because:
> >there are several places in loop opts that are not GGC-safe (in
> >particular the tree nodes refered from loop structures are not
> >seen by garbage collector, and I think there are some other instances).
> >So at the moment, you cannot run ggc_collect inside loop opts.
> (as pointed out by Zdenek in
> The simplest thing to do until loop optimizations are made GGC-safe is to
> remove the call to ggc_collect from pass_lower_vector.
> This patch also fixes an ICE (segmentation fault) in SPEC's gap and mesa.
> Bootstrapped and tested on powerpc-apple-darwin.
> ok to install?
> * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
I'm not particularly happy about it since there's no reason why the
loop optimizer can't operate in a GC safe manner. However, I will go
ahead and approve this patch as long as a PR is opened to track the
fact that the loop optimizers are not GC safe.