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

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

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

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

Basic kill analysis for modref

2021-11-11 Thread Jan Hubicka via Gcc-patches
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 during local analysis and optimized (so separate