Hi,
> 2021-06-16  Martin Jambor  <mjam...@suse.cz>
> 
>       PR ipa/101066
>       * ipa-sra.c (class isra_call_summary): New member
>       m_before_any_store, initialize it in the constructor.
>       (isra_call_summary::dump): Dump the new field.
>       (ipa_sra_call_summaries::duplicate): Copy it.
>       (process_scan_results): Set it.
>       (isra_write_edge_summary): Stream it.
>       (isra_read_edge_summary): Likewise.
>       (param_splitting_across_edge): Only override
>       safe_to_import_accesses if m_before_any_store is set.
> 
> gcc/testsuite/ChangeLog:
> 
> 2021-06-16  Martin Jambor  <mjam...@suse.cz>
> 
>       PR ipa/101066
>       * gcc.dg/ipa/pr101066.c: New test.
OK, thanks!

The analysis disabling transformation on any memory store is overly
conservative.  We have pointer (which is a parameter and comes from
outer world) and no type infomration, however alias oracle will still be
able to disambiguate when memory access is to non-escaping local memory
or mallocated memory block etc.

Honza

Reply via email to