diff options
author | Martin Liska <mliska@suse.cz> | 2018-11-05 14:36:29 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-11-05 13:36:29 +0000 |
commit | 40ce7fa6dd38f8ac26d576c84f5dbe4362aa902b (patch) | |
tree | 94fa1f477283ce96ec503e9878181a2db6833334 /gcc/ggc-common.c | |
parent | 00e6775a5faa43702e96e315e7a1c22297983f2a (diff) | |
download | gcc-40ce7fa6dd38f8ac26d576c84f5dbe4362aa902b.zip gcc-40ce7fa6dd38f8ac26d576c84f5dbe4362aa902b.tar.gz gcc-40ce7fa6dd38f8ac26d576c84f5dbe4362aa902b.tar.bz2 |
Come up with SIZE_AMOUNT and use it in memory statistics and sort stats.
2018-11-05 Martin Liska <mliska@suse.cz>
* alloc-pool.h (struct pool_usage): Use SIZE_AMOUNT.
* bitmap.h (struct bitmap_usage): Likewise.
* ggc-common.c (SCALE): Remove.
(LABEL): Likewise.
(struct ggc_usage): Use SIZE_AMOUNT. And update
compare method.
* ggc-page.c (SCALE): Remove.
(STAT_LABEL): Remove.
(ggc_print_statistics): Use SIZE_AMOUNT.
* gimple.h (SCALE): Remove.
(LABEL): Likewise.
* input.c (ONE_K): Remove.
(ONE_M): Likewise.
(SCALE): Likewise.
(STAT_LABEL): Likewise.
(FORMAT_AMOUNT): Likewise.
(dump_line_table_statistics): Use SIZE_AMOUNT.
* mem-stats.h (struct mem_usage): Likewise.
* rtl.c (dump_rtx_statistics): Likewise.
(rtx_alloc_counts): Change type to size_t.
(rtx_alloc_sizes): Likewise.
(rtx_count_cmp): New.
(dump_rtx_statistics): Sort first based on counts.
* tree.c (tree_nodes_cmp): New.
(tree_codes_cmp): New.
(dump_tree_statistics): Sort first based on counts.
* system.h (ONE_K): New.
(ONE_M): Likewise.
(SIZE_SCALE): Likewise.
(SIZE_LABEL): Likewise.
(SIZE_AMOUNT): Likewise.
* tree-cfg.c (dump_cfg_stats): Use SIZE_AMOUNT.
* tree-dfa.c (dump_dfa_stats): Likewise.
* tree-phinodes.c (phinodes_print_statistics): Likewise.
* tree-ssanames.c (ssanames_print_statistics): Likewise.
* tree.c (dump_tree_statistics): Likewise.
* vec.c (struct vec_usage): Likewise.
* trans-mem.c (tm_mangle): Enlarge buffer in order to not
trigger a -Werror=format-overflow with
--enable-gather-detailed-stats.
From-SVN: r265800
Diffstat (limited to 'gcc/ggc-common.c')
-rw-r--r-- | gcc/ggc-common.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c index f83fc13..9fdba23 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c @@ -195,14 +195,6 @@ ggc_splay_dont_free (void * x ATTRIBUTE_UNUSED, void *nl) gcc_assert (!nl); } -/* Print statistics that are independent of the collector in use. */ -#define SCALE(x) ((unsigned long) ((x) < 1024*10 \ - ? (x) \ - : ((x) < 1024*1024*10 \ - ? (x) / 1024 \ - : (x) / (1024*1024)))) -#define LABEL(x) ((x) < 1024*10 ? ' ' : ((x) < 1024*1024*10 ? 'k' : 'M')) - void ggc_print_common_statistics (FILE *stream ATTRIBUTE_UNUSED, ggc_statistics *stats) @@ -890,16 +882,17 @@ struct ggc_usage: public mem_usage inline void dump (const char *prefix, ggc_usage &total) const { - long balance = get_balance (); + size_t balance = get_balance (); fprintf (stderr, - "%-48s %10li:%5.1f%%%10li:%5.1f%%" - "%10li:%5.1f%%%10li:%5.1f%%%10li\n", - prefix, (long)m_collected, + "%-48s %9zu%c:%5.1f%%%9zu%c:%5.1f%%" + "%9zu%c:%5.1f%%%9zu%c:%5.1f%%%9zu%c\n", + prefix, SIZE_AMOUNT (m_collected), get_percent (m_collected, total.m_collected), - (long)m_freed, get_percent (m_freed, total.m_freed), - (long)balance, get_percent (balance, total.get_balance ()), - (long)m_overhead, get_percent (m_overhead, total.m_overhead), - (long)m_times); + SIZE_AMOUNT (m_freed), get_percent (m_freed, total.m_freed), + SIZE_AMOUNT (balance), get_percent (balance, total.get_balance ()), + SIZE_AMOUNT (m_overhead), + get_percent (m_overhead, total.m_overhead), + SIZE_AMOUNT (m_times)); } /* Dump usage coupled to LOC location, where TOTAL is sum of all rows. */ @@ -923,7 +916,7 @@ struct ggc_usage: public mem_usage } /* Get balance which is GGC allocation leak. */ - inline long + inline size_t get_balance () const { return m_allocated + m_overhead - m_collected - m_freed; @@ -938,10 +931,7 @@ struct ggc_usage: public mem_usage const mem_pair_t f = *(const mem_pair_t *)first; const mem_pair_t s = *(const mem_pair_t *)second; - if (*f.second == *s.second) - return 0; - - return *f.second < *s.second ? 1 : -1; + return s.second->get_balance () - f.second->get_balance (); } /* Compare rows in final GGC summary dump. */ |