Hi, On Fri, Dec 11, 2015 at 10:20:20PM +0100, Jan Hubicka wrote: > Actually I added > if (!ipa_is_param_used (info, i)) > > continue; > > shortcut to gather_context_independent_values which prevents > us from recording context_independent_aggregate_values for unused > aggregate parameters. Perhaps that is causing the isssue? > We can simply record them and just avoid returning true if > all propagations happen to those.
No, it's a different thing changed by the patch. The following patch makes the testcase pass but of course it is not a good fix. We were not performing any IPA-CP on the testcase before, now we are, so I suppose this has has uncovered a debug info deficiency. Martin diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index 8087f66..8c44b5a 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -2507,7 +2507,7 @@ estimate_local_effects (struct cgraph_node *node) known_aggs_ptrs = agg_jmp_p_vec_for_t_vec (known_aggs); int devirt_bonus = devirtualization_time_bonus (node, known_csts, known_contexts, known_aggs_ptrs); - if (always_const || devirt_bonus || removable_params_cost) + if (always_const || devirt_bonus)/* || removable_params_cost)*/ { struct caller_statistics stats; inline_hints hints;