On Tue, Aug 20, 2013 at 9:35 PM, Xinliang David Li <davi...@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 <era...@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
hot_caller.patch
Description: Binary data