> >> gcc/ChangeLog:
> >>
> >> 2023-08-18  Martin Jambor  <mjam...@suse.cz>
> >>
> >>    PR ipa/110378
> >>    * ipa-param-manipulation.cc
> >>    (ipa_param_body_adjustments::mark_dead_statements): Verify that any
> >>    return uses of PARAM will be removed.
> >>    (ipa_param_body_adjustments::mark_clobbers_dead): Likewise.
> >>    * ipa-sra.cc (isra_param_desc): New fields
> >>    remove_only_when_retval_removed and split_only_when_retval_removed.
> >>    (struct gensum_param_desc): Likewise.  Fix comment long line.
> >>    (ipa_sra_function_summaries::duplicate): Copy the new flags.
> >>    (dump_gensum_param_descriptor): Dump the new flags.
> >>    (dump_isra_param_descriptor): Likewise.
> >>    (isra_track_scalar_value_uses): New parameter desc.  Set its flag
> >>    remove_only_when_retval_removed when encountering a simple return.
> >>    (isra_track_scalar_param_local_uses): Replace parameter call_uses_p
> >>    with desc.  Pass it to isra_track_scalar_value_uses and set its
> >>    call_uses.
> >>    (ptr_parm_has_nonarg_uses): Accept parameter descriptor as a
> >>    parameter.  If there is a direct return use, mark any..
> >>    (create_parameter_descriptors): Pass the whole parameter descriptor to
> >>    isra_track_scalar_param_local_uses and ptr_parm_has_nonarg_uses.
> >>    (process_scan_results): Copy the new flags.
> >>    (isra_write_node_summary): Stream the new flags.
> >>    (isra_read_node_info): Likewise.
> >>    (adjust_parameter_descriptions): Check that transformations
> >>    requring return removal only happen when return value is removed.
> >>    Restructure main loop.  Adjust dump message.
> >>
> >> gcc/testsuite/ChangeLog:
> >>
> >> 2023-08-18  Martin Jambor  <mjam...@suse.cz>
> >>
> >>    PR ipa/110378
> >>    * gcc.dg/ipa/ipa-sra-32.c: New test.
> >>    * gcc.dg/ipa/pr110378-4.c: Likewise.
> >>    * gcc.dg/ipa/ipa-sra-4.c: Use a return value.
> >> ---
> >>  gcc/ipa-param-manipulation.cc         |   7 +-
> >>  gcc/ipa-sra.cc                        | 247 +++++++++++++++++---------
> >>  gcc/testsuite/gcc.dg/ipa/ipa-sra-32.c |  30 ++++
> >>  gcc/testsuite/gcc.dg/ipa/ipa-sra-4.c  |   4 +-
> >>  gcc/testsuite/gcc.dg/ipa/pr110378-4.c |  50 ++++++
> >>  5 files changed, 251 insertions(+), 87 deletions(-)
> >>  create mode 100644 gcc/testsuite/gcc.dg/ipa/ipa-sra-32.c
> >>  create mode 100644 gcc/testsuite/gcc.dg/ipa/pr110378-4.c
> >>

OK,
Thanks
Honza

Reply via email to