This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/37573] [4.4 Regression] gcc-4.4 regression: incorrect code generation with -O1 -ftree-vectorize
- From: "spop at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Oct 2008 00:02:09 -0000
- Subject: [Bug tree-optimization/37573] [4.4 Regression] gcc-4.4 regression: incorrect code generation with -O1 -ftree-vectorize
- References: <bug-37573-15165@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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