On Tue, Aug 20, 2013 at 9:35 PM, Xinliang David Li <[email protected]> wrote: > Do you need to guard the jump function access with check if > (ipa_node_params_vector.exists ())? I believe it is not necessary since, for example, ipa_analyze_node calls ipa_check_create_node_params that calls create. But I see it is used in ipa-inline-analysis.c everywhere. So I have added a check and conservatively return false.
>
> Ideally, useful_cold_callee should be folded into the inline hints
> estimation. Question about the heuristic: why filtering out
> PASS_THROUGH parameter cases completely? Passing 'this' parameter in
> many cases can result in good PRE opportunities. Why not skip the
> unknown type?
The rationale is it is useful to inline bar into foo in the snippet below:
void foo ()
{
A a;
bar(&a);
...
}
Capturing this requires UNKNOWN and KNOWN_TYPE jump functions. I have
changed the check accordingly. I have attached the new patch.
- Easwaran
> David
>
> On Tue, Aug 20, 2013 at 12:26 PM, Easwaran Raman <[email protected]> wrote:
>> The current hot caller heuristic simply promotes edges whose caller is
>> hot. This patch does the following:
>> * Turn it off for applications with large footprint since the size
>> increase hurts them
>> * Be more selective by considering arguments to callee when the
>> heuristic is enabled.
>>
>> This performs well on internal benchmarks. Ok for google/4_8 branch if
>> all tests pass?
>>
>> - Easwaran
hot_caller.patch
Description: Binary data
