The size_info of ipa_size_summary are created by r277424.  It should be
duplicated for cloned nodes, otherwise self_size and estimated_self_stack_size
would be 0, causing param large-function-insns and large-function-growth working
inaccurate when ipa-inline.

gcc/ChangeLog:

        2019-12-18  Luo Xiong Hu  <luo...@linux.ibm.com>

        * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Copy
        ipa_size_summary for cloned nodes.
---
 gcc/ipa-fnsummary.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
index a46b1445765..9a01be1708b 100644
--- a/gcc/ipa-fnsummary.c
+++ b/gcc/ipa-fnsummary.c
@@ -868,7 +868,12 @@ ipa_fn_summary_t::duplicate (cgraph_node *src,
        }
     }
   if (!dst->inlined_to)
+  {
+    class ipa_size_summary *src_size = ipa_size_summaries->get_create (src);
+    class ipa_size_summary *dst_size = ipa_size_summaries->get_create (dst);
+    *dst_size = *src_size;
     ipa_update_overall_fn_summary (dst);
+  }
 }
 
 
-- 
2.21.0.777.g83232e3864

Reply via email to