aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-10-29 14:52:57 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-10-29 13:52:57 +0000
commitfd46280df128333b51ab993341441d24636680be (patch)
tree216043ae1534b96e3f38f7e3006533e511f2cbaf
parent78cd68c0af1ba80b29849712f8defe51fd232ee7 (diff)
downloadgcc-fd46280df128333b51ab993341441d24636680be.zip
gcc-fd46280df128333b51ab993341441d24636680be.tar.gz
gcc-fd46280df128333b51ab993341441d24636680be.tar.bz2
Pass memory statistics for {symbol,call}_summary.
2019-10-29 Martin Liska <mliska@suse.cz> * symbol-summary.h (function_summary): Pass memory location to underlaying hash_map (or vec). (V>::fast_function_summary): Likewise. From-SVN: r277573
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/symbol-summary.h26
2 files changed, 22 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8e729b3..b482bd3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2019-10-29 Martin Liska <mliska@suse.cz>
+ * symbol-summary.h (function_summary): Pass memory location
+ to underlaying hash_map (or vec).
+ (V>::fast_function_summary): Likewise.
+
+2019-10-29 Martin Liska <mliska@suse.cz>
+
* ggc.h (ggc_alloc_no_dtor): New function.
* ipa-fnsummary.c (ipa_free_fn_summary): Call
destructor and ggc_free.
diff --git a/gcc/symbol-summary.h b/gcc/symbol-summary.h
index 6b26b60..14da3a1 100644
--- a/gcc/symbol-summary.h
+++ b/gcc/symbol-summary.h
@@ -129,7 +129,7 @@ class GTY((user)) function_summary <T *>: public function_summary_base<T>
{
public:
/* Default construction takes SYMTAB as an argument. */
- function_summary (symbol_table *symtab, bool ggc = false);
+ function_summary (symbol_table *symtab, bool ggc = false CXX_MEM_STAT_INFO);
/* Destructor. */
virtual ~function_summary ();
@@ -213,8 +213,11 @@ private:
};
template <typename T>
-function_summary<T *>::function_summary (symbol_table *symtab, bool ggc):
- function_summary_base<T> (symtab), m_ggc (ggc), m_map (13, ggc)
+function_summary<T *>::function_summary (symbol_table *symtab, bool ggc
+ MEM_STAT_DECL):
+ function_summary_base<T> (symtab), m_ggc (ggc), m_map (13, ggc, true,
+ GATHER_STATISTICS
+ PASS_MEM_STAT)
{
this->m_symtab_insertion_hook
= this->m_symtab->add_cgraph_insertion_hook (function_summary::symtab_insertion,
@@ -325,7 +328,7 @@ class GTY((user)) fast_function_summary <T *, V>
{
public:
/* Default construction takes SYMTAB as an argument. */
- fast_function_summary (symbol_table *symtab);
+ fast_function_summary (symbol_table *symtab CXX_MEM_STAT_INFO);
/* Destructor. */
virtual ~fast_function_summary ();
@@ -407,10 +410,10 @@ private:
};
template <typename T, typename V>
-fast_function_summary<T *, V>::fast_function_summary (symbol_table *symtab):
+fast_function_summary<T *, V>::fast_function_summary (symbol_table *symtab MEM_STAT_DECL):
function_summary_base<T> (symtab), m_vector (NULL)
{
- vec_alloc (m_vector, 13);
+ vec_alloc (m_vector, 13 PASS_MEM_STAT);
this->m_symtab_insertion_hook
= this->m_symtab->add_cgraph_insertion_hook (fast_function_summary::symtab_insertion,
this);
@@ -602,8 +605,11 @@ class GTY((user)) call_summary <T *>: public call_summary_base<T>
{
public:
/* Default construction takes SYMTAB as an argument. */
- call_summary (symbol_table *symtab, bool ggc = false)
- : call_summary_base<T> (symtab), m_ggc (ggc), m_map (13, ggc)
+ call_summary (symbol_table *symtab, bool ggc = false
+ CXX_MEM_STAT_INFO)
+ : call_summary_base<T> (symtab), m_ggc (ggc), m_map (13, ggc, true,
+ GATHER_STATISTICS
+ PASS_MEM_STAT)
{
this->m_symtab_removal_hook
= this->m_symtab->add_edge_removal_hook (call_summary::symtab_removal,
@@ -768,10 +774,10 @@ class GTY((user)) fast_call_summary <T *, V>: public call_summary_base<T>
{
public:
/* Default construction takes SYMTAB as an argument. */
- fast_call_summary (symbol_table *symtab)
+ fast_call_summary (symbol_table *symtab CXX_MEM_STAT_INFO)
: call_summary_base<T> (symtab), m_vector (NULL)
{
- vec_alloc (m_vector, 13);
+ vec_alloc (m_vector, 13 PASS_MEM_STAT);
this->m_symtab_removal_hook
= this->m_symtab->add_edge_removal_hook (fast_call_summary::symtab_removal,
this);