[PATCH] Distribute inliner's size_time data across entries with similar predicates
Maxim Kuvyrkov
maxim@codesourcery.com
Fri Sep 30 03:55:00 GMT 2011
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
More information about the Gcc-patches
mailing list