]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ipa: duplicate ipa_size_summary for cloned nodes
authorJan Hubicka <hubicka@ucw.cz>
Thu, 19 Dec 2019 08:20:09 +0000 (09:20 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 19 Dec 2019 08:20:09 +0000 (08:20 +0000)
* ipa-fnsummary.h (ipa_size_summary): Remove copy consturctor.
(ipa_size_summary_t): Add duplicate method; move to heap.
* ipa-fnsumary.c (ipa_fn_summary_alloc): Fix allocation.

From-SVN: r279563

gcc/ChangeLog
gcc/ipa-fnsummary.c
gcc/ipa-fnsummary.h

index e52d05634d34e8d94cbeb1e9cf328a332dff3c2f..3b703386dddac68f4bd31854ec4561296f87c950 100644 (file)
@@ -1,3 +1,10 @@
+2019-12-19  Jan Hubicka  <hubicka@ucw.cz>
+           Luo Xiong Hu  <luoxhu@linux.ibm.com
+
+       * ipa-fnsummary.h (ipa_size_summary): Remove copy consturctor.
+       (ipa_size_summary_t): Add duplicate method; move to heap.
+       * ipa-fnsumary.c (ipa_fn_summary_alloc): Fix allocation.
+
 2019-12-19  Feng Xue  <fxue@os.amperecomputing.com>
 
        PR ipa/92794
index a54703fb34775a8e1b8dce30f801fd790dd94ce2..5486f6496bde903d42f1f39234fb4f2aff2e33dd 100644 (file)
@@ -672,8 +672,7 @@ static void
 ipa_fn_summary_alloc (void)
 {
   gcc_checking_assert (!ipa_fn_summaries);
-  ipa_size_summaries = new fast_function_summary <ipa_size_summary *, va_heap>
-                                                        (symtab);
+  ipa_size_summaries = new ipa_size_summary_t (symtab);
   ipa_fn_summaries = ipa_fn_summary_t::create_ggc (symtab);
   ipa_call_summaries = new ipa_call_summary_t (symtab);
 }
index e43003212a82ae7e0799702b1ed9fa9526de07fe..a0ac0b7d55603661c4b5547eb545db0eabd64a06 100644 (file)
@@ -99,11 +99,6 @@ public:
   : estimated_self_stack_size (0), self_size (0), size (0)
   {
   }
-  /* Copy constructor.  */
-  ipa_size_summary (const ipa_size_summary &s)
-  : estimated_self_stack_size (0), self_size (s.self_size), size (s.size)
-  {
-  }
 };
 
 /* Function inlining information.  */
@@ -226,18 +221,20 @@ extern GTY(()) fast_function_summary <ipa_fn_summary *, va_gc>
   *ipa_fn_summaries;
 
 class ipa_size_summary_t:
-  public fast_function_summary <ipa_size_summary *, va_gc>
+  public fast_function_summary <ipa_size_summary *, va_heap>
 {
 public:
   ipa_size_summary_t (symbol_table *symtab):
-    fast_function_summary <ipa_size_summary *, va_gc> (symtab) {}
+    fast_function_summary <ipa_size_summary *, va_heap> (symtab)
+  {
+    disable_insertion_hook ();
+  }
 
-  static ipa_size_summary_t *create_ggc (symbol_table *symtab)
+  virtual void duplicate (cgraph_node *, cgraph_node *,
+                         ipa_size_summary *src_data,
+                         ipa_size_summary *dst_data)
   {
-    class ipa_size_summary_t *summary = new (ggc_alloc <ipa_size_summary_t> ())
-      ipa_size_summary_t (symtab);
-    summary->disable_insertion_hook ();
-    return summary;
+    *dst_data = *src_data;
   }
 };
 extern fast_function_summary <ipa_size_summary *, va_heap>