On 25/09/2011, at 11:21 PM, Jan Hubicka wrote:

>> 
>> I wonder why we bother to record so many predicates though.
> 
> Yep, I wonder if it comes from some real testcase?  I didn't see functions 
> that
> reach the limit and still be inlinable very often in practice.

This patch wasn't inspired by a real testcase.  I was studying your new 
context-sensitive inliner analysis and thought that we can deal with predicate 
overflow a bit better.

>> 
>>>       if (e->time > MAX_TIME * INLINE_TIME_SCALE)
>>> 
>>> The rationale was that since we are accounting size and time under the 
>>> entry we also need to make entry's predicate a superset of the predicate we 
>>> want to account the data under.
>>> 
>>> Then I thought that mushing all predicates into the single predicate of 
>>> entry[0] will cause it to become true_predicate() very quickly, so I added 
>>> logic to distribute incoming size_time information across all 32 entries by 
>>> searching for entries with similar predicates.
> 
> Entry[0] is always true predicate BTW.  This is why you don't need or 
> predicate there.

Yeap, I learned this several hours after I posted the patch.

> 
> I will take at the patch later today.

Thanks,

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics

Reply via email to