Hi,

On Wed, Dec 21, 2011 at 05:29:51PM +0100, Jan Hubicka wrote:
> > Hi,
> > 
> > given that we already have a workaround for zero size increase
> > estimates from estimate_ipcp_clone_size_and_time, I see little reason
> > not to extend it to negative values too, 0 is really just as bad as -2
> > that we are getting in the testcase.  Hopefully this will allow peple
> > who hit this bug proceed with their testing.
> > 
> > Bootstrapped and tested on x86-64-linux with no regressions.
> > OK for trunk?
> 
> Hmm, so the size value is not negative because 
> estimate_ipcp_clone_size_and_time
> would return 0 or negative value but because of
>   size -= stats.n_calls * removable_params_cost
> (i.e. the callee function is so small that the program will really
> shrink because of reduced call overhead)?

no, it is really estimate_ipcp_clone_size_and_time that returns size
estimate -2.  In fact, the subtraction you described does not occur on
that code path at all because I do it only for constants that occur in
all contexts (from all callers) and this assert is on the path dealing
with estimates of effects of constants that there are only in some
contexts.

The reason why I don't do it for constants that come from only a
subset of callers is that some of these callers might themselves
require context specific cloning to provide tha value but when actual
decisions are being made later on, they would not be cloned.  So I
don't know the set of callers that provide the constant at this time
and cannot do the subtraction.

> 
> In that case I guess the patch is OK, but please update the comment,

Well, it't not the case, so what do you think?

Martin

Reply via email to