Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-22 Thread Jan Hubicka
> > Ah, no, of course not. I guess the early out here should be a > "ignore this match" instead. Here is updated patch with a testcase I have re-tested on x86_64-linux and comitted. There are still few divergences left, I will debug them now. Again the testcase has extra wrapper in struct d to

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Jan Hubicka
> On Mon, 17 Jun 2019, Jan Hubicka wrote: > > > Hi, > > this is patch for aliasing_component_refs_p and VCE. > > I also turned the refp to ref, but there are no changes relative > > to that. > > Bootstrapped/regtested x86_64-linux, OK? > > OK. > > Bonus points for wrong-code testcases involving

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Richard Biener
On Mon, 17 Jun 2019, Jan Hubicka wrote: > Hi, > this is patch for aliasing_component_refs_p and VCE. > I also turned the refp to ref, but there are no changes relative > to that. > Bootstrapped/regtested x86_64-linux, OK? OK. Bonus points for wrong-code testcases involving these... like the fol

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Jan Hubicka
Hi, this is patch for aliasing_component_refs_p and VCE. I also turned the refp to ref, but there are no changes relative to that. Bootstrapped/regtested x86_64-linux, OK? Honza * tree-ssa-alias.c (aliasing_component_refs_p): Consider only the access path from base to first VIEW_CO

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Jan Hubicka
Hi this is patch for BIT_FIELD_REFs on nonoverlapping_component_refs_p I comitted after testing on x86_64-linux Honza Index: ChangeLog === --- ChangeLog (revision 272379) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2019-06-17

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Jan Hubicka
> On Mon, 17 Jun 2019, Jan Hubicka wrote: > > > > > > > get_alias_set already handles VCEs properly. Btw I've said > > > > I see - i keep thinking of get_alias_set as a simple accessor to type's > > alias set which it is not. It may make sense to separate these two > > later. > > > > > BIT_FI

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Richard Biener
On Mon, 17 Jun 2019, Jan Hubicka wrote: > > > > get_alias_set already handles VCEs properly. Btw I've said > > I see - i keep thinking of get_alias_set as a simple accessor to type's > alias set which it is not. It may make sense to separate these two > later. > > > BIT_FIELD_REF has the same

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-17 Thread Jan Hubicka
> > get_alias_set already handles VCEs properly. Btw I've said I see - i keep thinking of get_alias_set as a simple accessor to type's alias set which it is not. It may make sense to separate these two later. > BIT_FIELD_REF has the same issue but you didn't include that > case below. Sorry,

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-16 Thread Richard Biener
On Fri, 14 Jun 2019, Jan Hubicka wrote: > > > > I think this is still error-prone since we look past > > VIEW_CONVERT_EXPRs in the path so we happily disambiguate, > > say, > > > > struct X { int e; int d; }; > > struct Y { int d; int e; }; > > > > VIEW_CONVERT(p->b).d > > VIEW_CONVERT(q->b

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-16 Thread Jan Hubicka
Hi, my patch had a typo - I forgot to update the second call of truncate. This fixes it. Bootstrapped/regtested with all languages on x86_64-linux and comitted. This unbreaks non-lto Ada bootstrap failure. * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto in my previo

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Jan Hubicka
... and forgot to add stats for tramp3d :) Alias oracle query stats: refs_may_alias_p: 3021539 disambiguations, 3321136 queries ref_maybe_used_by_call_p: 7118 disambiguations, 3047133 queries call_may_clobber_ref_p: 817 disambiguations, 817 queries nonoverlapping_component_refs_p: 22 disam

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Jan Hubicka
> > I think this is still error-prone since we look past > VIEW_CONVERT_EXPRs in the path so we happily disambiguate, > say, > > struct X { int e; int d; }; > struct Y { int d; int e; }; > > VIEW_CONVERT(p->b).d > VIEW_CONVERT(q->b).e > > where in reality only the access paths from the base

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Richard Biener
On Fri, 14 Jun 2019, Jan Hubicka wrote: > Hi, > I am heading to lunch, thanks for all the reviews! > This is the cut down version of patch I am testing and will be back in > about an hour. > > Honza > > * tree-ssa-alias.c (alias_stats): Add > nonoverlapping_component_refs_p_may_alias

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Jan Hubicka
Hi, I am heading to lunch, thanks for all the reviews! This is the cut down version of patch I am testing and will be back in about an hour. Honza * tree-ssa-alias.c (alias_stats): Add nonoverlapping_component_refs_p_may_alias, nonoverlapping_component_refs_p_no_alias,

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Richard Biener
On Fri, 14 Jun 2019, Jan Hubicka wrote: > > nonoverlapping_component_refs_of_decl_p was added by Eric before > > I moved nonoverlapping_component_refs_p from RTL to trees. It's > > nice to see them merged. > > > > Still I'd like to see it done in two steps, first making them > > more equivalent

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Jan Hubicka
> nonoverlapping_component_refs_of_decl_p was added by Eric before > I moved nonoverlapping_component_refs_p from RTL to trees. It's > nice to see them merged. > > Still I'd like to see it done in two steps, first making them > more equivalent by adding missing checks, best with actually > failin

Re: Remove nonoverlapping_component_refs_of_decl_p

2019-06-14 Thread Richard Biener
On Fri, 14 Jun 2019, Jan Hubicka wrote: > Hi, > this patch removes nonoverlapping_component_refs_of_decl_p and replaces > it by nonoverlapping_component_refs_p. Those functions are basically > equivalent, however the first assumes that the outer type of memory access > is type of decl which is not