https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84149

--- Comment #10 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Wed Apr 11 13:30:53 2018
New Revision: 259319

URL: https://gcc.gnu.org/viewcvs?rev=259319&root=gcc&view=rev
Log:
Improve IPA-CP handling of self-recursive calls

2018-04-11  Martin Jambor  <mjam...@suse.cz>

        PR ipa/84149
        * ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
        (cgraph_edge_brings_value_p): New parameter dest_val, check if it is
        not the same as the source val.
        (cgraph_edge_brings_value_p): New parameter.
        (gather_edges_for_value): Pass destination value to
        cgraph_edge_brings_value_p.
        (perhaps_add_new_callers): Likewise.
        (get_info_about_necessary_edges): Likewise and exclude values brought
        only by self-recursive edges.
        (create_specialized_node): Redirect only clones of self-calling edges.
        (+self_recursive_pass_through_p): New function.
        (find_more_scalar_values_for_callers_subset): Use it.
        (find_aggregate_values_for_callers_subset): Likewise.
        (known_aggs_to_agg_replacement_list): Removed.
        (decide_whether_version_node): Re-calculate known constants for all
        remaining context clones.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ipa-cp.c

Reply via email to