[Google] Refine hot caller heuristic
Easwaran Raman
eraman@google.com
Thu Aug 29 18:27:00 GMT 2013
On Tue, Aug 20, 2013 at 9:35 PM, Xinliang David Li <davidxl@google.com> 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 <eraman@google.com> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hot_caller.patch
Type: application/octet-stream
Size: 4342 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130829/34a6e0f2/attachment.obj>
More information about the Gcc-patches
mailing list