Re: middle-end: Fix wrong code caused by disagreemed between FRE and access path oracle [PR 92152]

2020-02-27 Thread Richard Biener
On Wed, 26 Feb 2020, Jan Hubicka wrote: > Hi, > this is and TBAA stat for building cc1 with -flto-partition=none. > > From: > > Alias oracle query stats: > refs_may_alias_p: 46099243 disambiguations, 55677716 queries > ref_maybe_used_by_call_p: 124351 disambiguations, 46883813 queries >

Re: middle-end: Fix wrong code caused by disagreemed between FRE and access path oracle [PR 92152]

2020-02-26 Thread Jan Hubicka
Hi, this is and TBAA stat for building cc1 with -flto-partition=none. From: Alias oracle query stats: refs_may_alias_p: 46099243 disambiguations, 55677716 queries ref_maybe_used_by_call_p: 124351 disambiguations, 46883813 queries call_may_clobber_ref_p: 12673 disambiguations, 17133 queries

Re: middle-end: Fix wrong code caused by disagreemed between FRE and access path oracle [PR 92152]

2020-02-26 Thread Jan Hubicka
> > Bootstrapped/regtested x86_64-linux, OK? > > OK and thanks for the elaborate write-up and comments in the code ;) Unforutnately our discussion on IRC let me construct another wrong code testcase based on mixing up base alias sets union U { long long i; long f; }; struct a {union U u;};

Re: middle-end: Fix wrong code caused by disagreemed between FRE and access path oracle [PR 92152]

2020-02-26 Thread Richard Biener
On Wed, 26 Feb 2020, Jan Hubicka wrote: > Hi, > This patch solves problem caused by the disagreement between FRE and access > path orracle. > > FRE is checking stores for equivalence based on their address, value and > base+ref alias sets. Because ref alias set is not always the alias set of >

middle-end: Fix wrong code caused by disagreemed between FRE and access path oracle [PR 92152]

2020-02-26 Thread Jan Hubicka
Hi, This patch solves problem caused by the disagreement between FRE and access path orracle. FRE is checking stores for equivalence based on their address, value and base+ref alias sets. Because ref alias set is not always the alias set of innermost type, but it may be one of refs in the access