> 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

Reply via email to