> gcc/ChangeLog:
> 
> 2022-11-11  Martin Jambor  <mjam...@suse.cz>
> 
>       * ipa-sra.cc (isra_param_desc): New fields safe_size,
>       conditionally_dereferenceable and safe_size_set.
>       (struct gensum_param_desc): New field conditionally_dereferenceable.
>       (struct isra_param_flow): Updated comment of field unit_size.
>       (ipa_sra_function_summaries::duplicate): Copy the new fields.
>       (isra_call_summary::dump): Dump unit_size when representing safe_size.
>       (dump_gensum_param_descriptor): Dump new flag.
>       (dump_isra_param_descriptor): Dump new fields.
>       (isra_analyze_call): Fill unit_size when it represents known safe
>       size.
>       (check_gensum_access): Instead of disqualifying pointers which are not
>       always dereference, mark them as conditionally dereferencable if loads
>       are frequent enough.
>       (process_scan_results): Copy the conditionally_dereferenceable flag.
>       (isra_write_node_summary): Stream new fields, or assert they are not
>       initialized yet.
>       (isra_read_node_info): Stream new fields.
>       (update_safe_size): New function.
>       (propagate_param_hints_accross_call): Propagate safe_sizes.
>       (propagate_hints_to_all_callees): New function.
>       (adjust_parameter_descriptions): Check conditionally_dereferenceable
>       candidates, rework dumping.
>       (ipa_sra_analysis): Move most of hint propagation for one node to
>       propagate_hints_to_all_callees.  Add another loop to stabilize within
>       SCCs and another one to verify.
> 
> gcc/testsuite/ChangeLog:
> 
> 2022-11-11  Martin Jambor  <mjam...@suse.cz>
> 
>       * gcc.dg/ipa/ipa-sra-26.c: New test.
>       * gcc.dg/ipa/ipa-sra-27.c: Likewise.
>       * gcc.dg/ipa/ipa-sra-28.c: Likewise.

OK,
thanks!
Honza

Reply via email to