Re: Basic kill analysis for modref

2021-11-16 Thread Jan Hubicka via Gcc-patches
> chain_map isn't initialized. > > This caused: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103262 > Hi, this is patch I comitted that moves the misplaced hunk. gcc/ChangeLog: PR ipa/103262 * ipa-modref.c (merge_call_side_effects):

Re: Basic kill analysis for modref

2021-11-15 Thread Jan Hubicka via Gcc-patches
> > > + if (always_executed > > > + && callee_summary->kills.length () > > > + && (!cfun->can_throw_non_call_exceptions > > > + || !stmt_could_throw_p (cfun, stmt))) > > > +{ > > > + /* Watch for self recursive updates. */ > > > + auto_vec saved_kills; > > > + > >

Re: Basic kill analysis for modref

2021-11-15 Thread Jeff Law via Gcc-patches
On 11/15/2021 11:51 AM, H.J. Lu via Gcc-patches wrote: On Sun, Nov 14, 2021 at 10:53 AM Jan Hubicka via Gcc-patches wrote: I think you want get_addr_base_and_unit_offset here. All variable indexed addresses are in separate stmts. That also means you can eventually work with just byte sizes

Re: Basic kill analysis for modref

2021-11-15 Thread H.J. Lu via Gcc-patches
On Sun, Nov 14, 2021 at 10:53 AM Jan Hubicka via Gcc-patches wrote: > > > > > > > I think you want get_addr_base_and_unit_offset here. All > > > variable indexed addresses are in separate stmts. That also means > > > you can eventually work with just byte sizes/offsets? > > > > Will do. The acc

Re: Basic kill analysis for modref

2021-11-14 Thread Jan Hubicka via Gcc-patches
> > > > I think you want get_addr_base_and_unit_offset here. All > > variable indexed addresses are in separate stmts. That also means > > you can eventually work with just byte sizes/offsets? > > Will do. The access range in modref summary is bit based (since we want > to disabiguate bitfield

Re: Basic kill analysis for modref

2021-11-12 Thread Richard Biener via Gcc-patches
On Fri, 12 Nov 2021, Jan Hubicka wrote: > > > > I wonder why we bother producing summaries for things that do not > > bind locally? The summary->kills.length () has an upper bound? > > Because of local aliases. > The size of the array is capped by param_max_modref_accesses which is > 16. > > >

Re: Basic kill analysis for modref

2021-11-12 Thread Jan Hubicka via Gcc-patches
> > I wonder why we bother producing summaries for things that do not > bind locally? The summary->kills.length () has an upper bound? Because of local aliases. The size of the array is capped by param_max_modref_accesses which is 16. > > > + && summary->kills.length ()) > > + { > > +

Re: Basic kill analysis for modref

2021-11-12 Thread Richard Biener via Gcc-patches
On Thu, 11 Nov 2021, Jan Hubicka wrote: > Hi, > This patch enables optimization of stores that are killed by calls. > Modref summary is extended by array containing list of access ranges, relative > to function parameters, that are known to be killed by the function. > This array is collected duri