aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-reference.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-02-18 09:21:23 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-02-18 08:21:23 +0000
commitdb30281f0b2ff6dfc0c4146291baf020a27e4065 (patch)
tree419ecfa282d86cfaa3d74625e4883e4a619573c9 /gcc/ipa-reference.c
parente8cecccc2e5abb5d753291892968bf72533a7045 (diff)
downloadgcc-db30281f0b2ff6dfc0c4146291baf020a27e4065.zip
gcc-db30281f0b2ff6dfc0c4146291baf020a27e4065.tar.gz
gcc-db30281f0b2ff6dfc0c4146291baf020a27e4065.tar.bz2
Come up with fast {function,call}_summary classes (PR ipa/89306).
2019-02-18 Martin Liska <mliska@suse.cz> PR ipa/89306 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1 by default. (symbol_table::free_edge): Recycle m_summary_id. * cgraph.h (get_summary_id): New. (symbol_table::release_symbol): Set m_summary_id to -1 by default. (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id. * ipa-fnsummary.c (ipa_fn_summary_t): Switch from function_summary to fast_function_summary. * ipa-fnsummary.h (ipa_fn_summary_t): Likewise. * ipa-pure-const.c (class funct_state_summary_t): Switch from function_summary to fast_function_summary. * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise. (class ipa_ref_opt_summary_t): Switch from function_summary to fast_function_summary. * symbol-summary.h (class function_summary_base): New class that is created from base of former function_summary. (function_summary_base::unregister_hooks): New. (class function_summary): Inherit from function_summary_base. (class call_summary_base): New class that is created from base of former call_summary. (class call_summary): Inherit from call_summary_base. (struct is_same): New. (class fast_function_summary): New summary class. (class fast_call_summary): New summary class. * vec.h (vec_safe_grow_cleared): New function. From-SVN: r268979
Diffstat (limited to 'gcc/ipa-reference.c')
-rw-r--r--gcc/ipa-reference.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index d1759a3..9ef03c2 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -110,23 +110,22 @@ static bitmap_obstack local_info_obstack;
/* Obstack holding global analysis live forever. */
static bitmap_obstack optimization_summary_obstack;
-class ipa_ref_var_info_summary_t: public function_summary
- <ipa_reference_vars_info_d *>
+class ipa_ref_var_info_summary_t: public fast_function_summary
+ <ipa_reference_vars_info_d *, va_heap>
{
public:
ipa_ref_var_info_summary_t (symbol_table *symtab):
- function_summary <ipa_reference_vars_info_d *> (symtab) {}
+ fast_function_summary <ipa_reference_vars_info_d *, va_heap> (symtab) {}
};
static ipa_ref_var_info_summary_t *ipa_ref_var_info_summaries = NULL;
-class ipa_ref_opt_summary_t: public function_summary
- <ipa_reference_optimization_summary_d *>
+class ipa_ref_opt_summary_t: public fast_function_summary
+ <ipa_reference_optimization_summary_d *, va_heap>
{
public:
ipa_ref_opt_summary_t (symbol_table *symtab):
- function_summary <ipa_reference_optimization_summary_d *> (symtab) {}
-
+ fast_function_summary <ipa_reference_optimization_summary_d *, va_heap> (symtab) {}
virtual void remove (cgraph_node *src_node,
ipa_reference_optimization_summary_d *data);