On Tue, Jul 27, 2021 at 10:05 AM Richard Biener
<richard.guent...@gmail.com> wrote:
>
> On Sun, Jul 25, 2021 at 1:58 PM Uecker, Martin
> <martin.uec...@med.uni-goettingen.de> wrote:
> >
> >
> >
> > Hi Richard,
> >
> > here is another case where it seems that TBAA goes
> > wrong. Since this is not in a loop, it seems this
> > is something else than what we discussed. Is
> > this a known issue?
>
> No, it's not known and it is a bug.  It seems to be
> related to doing
>
> Value numbering stmt = pu_6(D)->x = xy_7;
> Store matched earlier value, value numbering store vdefs to matching vuses.
> Setting value number of .MEM_8 to .MEM_5 (changed)
>
> I'm looking into it.

I've filed PR101641

>
> Richard.
>
> > Best,
> > Martin
> >
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> >
> > union u {
> >   long x;
> >   long long y;
> > };
> >
> > __attribute__((noinline,noclone))
> > long test(long *px, long long *py, union u *pu)
> > {
> >   *px = 0;
> >   *py = 1;
> >
> >   long xy = pu->y;
> >   pu->x = xy;
> >
> >   return *px;
> > }
> >
> > int main(void)
> > {
> >   union u u;
> >   printf("%ld\n", test(&u.x, &u.y, &u));
> > }
> >
> > https://godbolt.org/z/a9drezEza
> >

Reply via email to