diff mbox series

Pass memory statistics for {symbol,call}_summary.

Message ID 74ba5a95-f15d-4fab-b325-9c12d07a2ce0@suse.cz
State New
Headers show
Series Pass memory statistics for {symbol,call}_summary. | expand

Commit Message

Martin Liška Oct. 29, 2019, 1:31 p.m. UTC
Hi.

The pass passes memory allocation location to underlying
hash_map (and vec).

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

gcc/ChangeLog:

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.
---
 gcc/symbol-summary.h | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

Comments

Jan Hubicka Oct. 29, 2019, 1:48 p.m. UTC | #1
> Hi.
> 
> The pass passes memory allocation location to underlying
> hash_map (and vec).
> 
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
> 
> Ready to be installed?
OK,
thanks!
Honza
> Thanks,
> Martin
> 
> gcc/ChangeLog:
> 
> 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.
> ---
>  gcc/symbol-summary.h | 26 ++++++++++++++++----------
>  1 file changed, 16 insertions(+), 10 deletions(-)
> 
> 

> diff --git a/gcc/symbol-summary.h b/gcc/symbol-summary.h
> index a0bacadb63b..cc28b409e32 100644
> --- a/gcc/symbol-summary.h
> +++ b/gcc/symbol-summary.h
> @@ -131,7 +131,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 ()
> @@ -222,8 +222,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,
> @@ -340,7 +343,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 ()
> @@ -429,10 +432,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);
> @@ -633,8 +636,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,
> @@ -812,10 +818,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);
> 

pub   RSA 2048/A22D152C 2019-10-29 Martin Liška <mliska@suse.cz>
> sub   RSA 2048/1C617839 2019-10-29
>
diff mbox series

Patch

diff --git a/gcc/symbol-summary.h b/gcc/symbol-summary.h
index a0bacadb63b..cc28b409e32 100644
--- a/gcc/symbol-summary.h
+++ b/gcc/symbol-summary.h
@@ -131,7 +131,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 ()
@@ -222,8 +222,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,
@@ -340,7 +343,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 ()
@@ -429,10 +432,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);
@@ -633,8 +636,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,
@@ -812,10 +818,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);