> On Thu, Dec 10, 2015 at 08:30:37AM +0100, Jan Hubicka wrote: > > I am bootstrapping/regtesting this on x86_64-linux, does it seem OK? > > I think this patch (just a guess, but certainly ipa-cp related during last > 24 hours) significantly regressed guality/pr36728-*.c on x86_64. > Previously we have not turned foo into foo.constprop*, now we do, and pass > just arg7 instead of arg1..arg7. That is fine, but we really should be
Yes, I changed the heuristics to consider it a win to drop the arugment even if no constant propagation is done. > emitting the debug info stuff for that case, that was added to fix PR47858, > but for whatever reason it doesn't happen in this case. Does it take some > other path in ipa-prop.c, or bypass ipa-prop, something different? No, it is the same clonning as any other. Just the decision heuristics changed. We would get same issue qith guality/pr36728- if one of arg1...arg7 was constant. I will try to take a look at your patch for PR47858 and see if I can work out what goes wrong. Honza > > > * ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p. > > (good_cloning_opportunity_p): Likewise. > > (gather_context_independent_values): Do not return true when > > polymorphic call context is known or when we have known aggregate > > value of unused parameter. > > (estimate_local_effects): Try to create clone for all context > > when either some params are substituted or devirtualization is possible > > or some params can be removed; use local flag instead of > > node->will_be_removed_from_program_if_no_direct_calls_p. > > (identify_dead_nodes): Likewise. > > Jakub