This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Google] Refine hot caller heuristic

Ok.  Do consider generalize it with 1) more inline hints (how the
parameters are used in callee); and 2) more parameter type (such as
addr_k, non_null_k, range_k etc you have proposed before) in the



On Thu, Aug 29, 2013 at 11:24 AM, Easwaran Raman <> wrote:
> On Tue, Aug 20, 2013 at 9:35 PM, Xinliang David Li <> 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 <> 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]