This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patches ping
Hello,
> On Wed, 2005-05-04 at 15:23, Devang Patel wrote:
> > On May 4, 2005, at 11:44 AM, Zdenek Dvorak wrote:
> >
> > > The problem is known for about a month now, and nobody bothered to do
> > > anything about it.
> >
> > IIRC, one problem in this area was fixed By Diego and/or Jeff. In any
> > case,
> > it would be useful if you provide more info to refresh our memory.
>
> I don't know what the issue was. You can see it yourself if you apply
> the patch. basically, at the end of the vectorizing pass, there are
> statements which if you call update_stmt() on them, they get a different
> set of operands. This means they needed to be updated during the pass
> because they are out of date when the pass is over.
>
> in the example I had in gen-vect-11.c
>
> before updating:
>
> # VUSE <ib_57>;
> vect_var_.6_1 = *vect_pib.7_2;
>
> And after updating:
>
> # VUSE <ia>;
> # VUSE <ic>;
> # VUSE <ib_57>;
> vect_var_.6_1 = *vect_pib.7_2;
>
> AS you can see, calling update_stmt on this stmt has added 2
> additionally VUSES. I'm guessing this is alias related adn that the
> alias sets for vect_pib.7_2 hgave changed, but that this stmt wasn't
> updated after the alias sets were changed.
the reason is that vect_pib does not have the aliasing info set
correctly. The virtual operands the statement has should indeed
be just VUSE <ib_57>, but if I remember correctly, vect_pib.7_2
does not have name tag set and consequently is set to alias all
three arrays.
Zdenek