------- Additional Comments From law at redhat dot com 2005-05-25 05:55 ------- Subject: Re: [4.1 regression] ICE: -ftree-vectorize, segfault
On Tue, 2005-05-24 at 14:21 +0000, pinskia at gcc dot gnu dot org wrote: > ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-24 > 14:21 ------- > Here is a C testcase: > struct a > { > int aa[4]; > }; > struct b > { > struct a aa; > }; > > void foo(struct b *bb) > { > int i; > for (i=0; i<4; ++i) > { > struct a *aa = &bb->aa; > struct a *aa1 = aa; > struct a *aa2 = aa1; > int *d = &aa2->aa[i]; > *d = 0; > } > } > > I think this is caused by the forwprop changes. (Notice the extra variables > to reproduce this bug). Actually, this is a bug in the vectorizer code to update PHIs in duplicate loops. forwprop AFAICT is just exposing the latent vectorizer bug. >From what I've been able to determine so far, the vectorizer code to update PHIs doesn't properly handle the case where a PHI is dead. It is likely someone with more experience in the vectorizer code is going to need to fix this. Jeff -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21734