> 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?

Hmm, it is estimate_ipcp_clone_size_and_time bug then.  I will look into that
today.

Honza
> 
> Martin

Reply via email to