------- Comment #10 from spop at gcc dot gnu dot org 2008-10-16 00:02 ------- Subject: Re: [4.4 Regression] gcc-4.4 regression: incorrect code generation with -O1 -ftree-vectorize
On Wed, Oct 15, 2008 at 4:47 PM, rguenth at gcc dot gnu dot org > IMHO the fix for the tuplification bug(!) is to strip the ADDR_EXPR that is > always present on op0 in split_constant_offset_1 so: > > case ADDR_EXPR: > { > tree base, poffset; > HOST_WIDE_INT pbitsize, pbitpos; > enum machine_mode pmode; > int punsignedp, pvolatilep; > > op0 = TREE_OPERAND (op0, 0); > if (!handled_component_p (op0)) > return false; This is exactly what I tried within gdb and it did worked, although not as I expected: the base address ends to be &s and not &s.c[0] as I expected before. This then fixes the bug as we end on the same base address of the structure. Then the alias analysis answers that the two accesses can overlap. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37573