Commit 44fca832 by Jan Hubicka Committed by Jan Hubicka

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
parent 951e27f5
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> 2019-12-19 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/92794 PR ipa/92794
...@@ -672,8 +672,7 @@ static void ...@@ -672,8 +672,7 @@ static void
ipa_fn_summary_alloc (void) ipa_fn_summary_alloc (void)
{ {
gcc_checking_assert (!ipa_fn_summaries); gcc_checking_assert (!ipa_fn_summaries);
ipa_size_summaries = new fast_function_summary <ipa_size_summary *, va_heap> ipa_size_summaries = new ipa_size_summary_t (symtab);
(symtab);
ipa_fn_summaries = ipa_fn_summary_t::create_ggc (symtab); ipa_fn_summaries = ipa_fn_summary_t::create_ggc (symtab);
ipa_call_summaries = new ipa_call_summary_t (symtab); ipa_call_summaries = new ipa_call_summary_t (symtab);
} }
......
...@@ -99,11 +99,6 @@ public: ...@@ -99,11 +99,6 @@ public:
: estimated_self_stack_size (0), self_size (0), size (0) : 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. */ /* Function inlining information. */
...@@ -226,18 +221,20 @@ extern GTY(()) fast_function_summary <ipa_fn_summary *, va_gc> ...@@ -226,18 +221,20 @@ extern GTY(()) fast_function_summary <ipa_fn_summary *, va_gc>
*ipa_fn_summaries; *ipa_fn_summaries;
class ipa_size_summary_t: class ipa_size_summary_t:
public fast_function_summary <ipa_size_summary *, va_gc> public fast_function_summary <ipa_size_summary *, va_heap>
{ {
public: public:
ipa_size_summary_t (symbol_table *symtab): 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> ()) *dst_data = *src_data;
ipa_size_summary_t (symtab);
summary->disable_insertion_hook ();
return summary;
} }
}; };
extern fast_function_summary <ipa_size_summary *, va_heap> extern fast_function_summary <ipa_size_summary *, va_heap>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment