aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-12-19 09:20:09 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-12-19 08:20:09 +0000
commit44fca83228acc96c19c51e52b5c0448e09329170 (patch)
treebfe0552c058c7e746f11c67c4516ecb3a1184026
parent951e27f58ca5c7f33124407079c383706e99c68d (diff)
downloadgcc-44fca83228acc96c19c51e52b5c0448e09329170.zip
gcc-44fca83228acc96c19c51e52b5c0448e09329170.tar.gz
gcc-44fca83228acc96c19c51e52b5c0448e09329170.tar.bz2
ipa: duplicate ipa_size_summary for cloned nodes
* 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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ipa-fnsummary.c3
-rw-r--r--gcc/ipa-fnsummary.h21
3 files changed, 17 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e52d056..3b70338 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
index a54703f..5486f64 100644
--- a/gcc/ipa-fnsummary.c
+++ b/gcc/ipa-fnsummary.c
@@ -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);
}
diff --git a/gcc/ipa-fnsummary.h b/gcc/ipa-fnsummary.h
index e430032..a0ac0b7 100644
--- a/gcc/ipa-fnsummary.h
+++ b/gcc/ipa-fnsummary.h
@@ -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>