mirror of git://gcc.gnu.org/git/gcc.git
mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
2016-02-23 Richard Biener <rguenther@suse.de> * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t. * bitmap.h (struct bitmap_usage): Likewise. (bitmap_move): Declare. * bitmap.c (register_overhead): Take size_t argument. (bitmap_move): New function. * df-problems.c (df_rd_transfer_function): Use bitmap_move to properly account overhead. * tree.c (free_node): Use tree_size. From-SVN: r233633
This commit is contained in:
parent
c60ec7c238
commit
43331dfbb8
|
@ -1,3 +1,14 @@
|
|||
2016-02-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
|
||||
* bitmap.h (struct bitmap_usage): Likewise.
|
||||
(bitmap_move): Declare.
|
||||
* bitmap.c (register_overhead): Take size_t argument.
|
||||
(bitmap_move): New function.
|
||||
* df-problems.c (df_rd_transfer_function): Use bitmap_move
|
||||
to properly account overhead.
|
||||
* tree.c (free_node): Use tree_size.
|
||||
|
||||
2016-02-23 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/69902
|
||||
|
|
23
gcc/bitmap.c
23
gcc/bitmap.c
|
@ -35,7 +35,7 @@ bitmap_register (bitmap b MEM_STAT_DECL)
|
|||
|
||||
/* Account the overhead. */
|
||||
static void
|
||||
register_overhead (bitmap b, int amount)
|
||||
register_overhead (bitmap b, size_t amount)
|
||||
{
|
||||
if (bitmap_mem_desc.contains_descriptor_for_instance (b))
|
||||
bitmap_mem_desc.register_instance_overhead (amount, b);
|
||||
|
@ -468,6 +468,27 @@ bitmap_copy (bitmap to, const_bitmap from)
|
|||
to_ptr = to_elt;
|
||||
}
|
||||
}
|
||||
|
||||
/* Move a bitmap to another bitmap. */
|
||||
|
||||
void
|
||||
bitmap_move (bitmap to, bitmap from)
|
||||
{
|
||||
gcc_assert (to->obstack == from->obstack);
|
||||
|
||||
bitmap_clear (to);
|
||||
|
||||
*to = *from;
|
||||
|
||||
if (GATHER_STATISTICS)
|
||||
{
|
||||
size_t sz = 0;
|
||||
for (bitmap_element *e = to->first; e; e = e->next)
|
||||
sz += sizeof (bitmap_element);
|
||||
register_overhead (to, sz);
|
||||
register_overhead (from, -sz);
|
||||
}
|
||||
}
|
||||
|
||||
/* Find a bitmap element that would hold a bitmap's bit.
|
||||
Update the `current' field even if we can't find an element that
|
||||
|
|
15
gcc/bitmap.h
15
gcc/bitmap.h
|
@ -157,12 +157,14 @@ struct bitmap_usage: public mem_usage
|
|||
{
|
||||
char *location_string = loc->to_string ();
|
||||
|
||||
fprintf (stderr, "%-48s %10li:%5.1f%%%10li%10li:%5.1f%%%12li%12li%10s\n",
|
||||
location_string,
|
||||
(long)m_allocated, get_percent (m_allocated, total.m_allocated),
|
||||
(long)m_peak, (long)m_times,
|
||||
fprintf (stderr, "%-48s %10" PRIu64 ":%5.1f%%"
|
||||
"%10" PRIu64 "%10" PRIu64 ":%5.1f%%"
|
||||
"%12" PRIu64 "%12" PRIu64 "%10s\n",
|
||||
location_string, (uint64_t)m_allocated,
|
||||
get_percent (m_allocated, total.m_allocated),
|
||||
(uint64_t)m_peak, (uint64_t)m_times,
|
||||
get_percent (m_times, total.m_times),
|
||||
(long)m_nsearches, (long)m_search_iter,
|
||||
m_nsearches, m_search_iter,
|
||||
loc->m_ggc ? "ggc" : "heap");
|
||||
|
||||
free (location_string);
|
||||
|
@ -253,6 +255,9 @@ extern void bitmap_clear (bitmap);
|
|||
/* Copy a bitmap to another bitmap. */
|
||||
extern void bitmap_copy (bitmap, const_bitmap);
|
||||
|
||||
/* Move a bitmap to another bitmap. */
|
||||
extern void bitmap_move (bitmap, bitmap);
|
||||
|
||||
/* True if two bitmaps are identical. */
|
||||
extern bool bitmap_equal_p (const_bitmap, const_bitmap);
|
||||
|
||||
|
|
|
@ -517,10 +517,7 @@ df_rd_transfer_function (int bb_index)
|
|||
bitmap_ior_into (&tmp, gen);
|
||||
changed = !bitmap_equal_p (&tmp, out);
|
||||
if (changed)
|
||||
{
|
||||
bitmap_clear (out);
|
||||
bb_info->out = tmp;
|
||||
}
|
||||
bitmap_move (out, &tmp);
|
||||
else
|
||||
bitmap_clear (&tmp);
|
||||
}
|
||||
|
|
|
@ -190,10 +190,11 @@ struct mem_usage
|
|||
{
|
||||
char *location_string = loc->to_string ();
|
||||
|
||||
fprintf (stderr, "%-48s %10li:%5.1f%%%10li%10li:%5.1f%%%10s\n",
|
||||
location_string,
|
||||
(long)m_allocated, get_percent (m_allocated, total.m_allocated),
|
||||
(long)m_peak, (long)m_times,
|
||||
fprintf (stderr, "%-48s %10" PRIu64 ":%5.1f%%"
|
||||
"%10" PRIu64 "%10" PRIu64 ":%5.1f%%%10s\n",
|
||||
location_string, (uint64_t)m_allocated,
|
||||
get_percent (m_allocated, total.m_allocated),
|
||||
(uint64_t)m_peak, (uint64_t)m_times,
|
||||
get_percent (m_times, total.m_times), loc->m_ggc ? "ggc" : "heap");
|
||||
|
||||
free (location_string);
|
||||
|
@ -204,8 +205,8 @@ struct mem_usage
|
|||
dump_footer () const
|
||||
{
|
||||
print_dash_line ();
|
||||
fprintf (stderr, "%s%54li%27li\n", "Total", (long)m_allocated,
|
||||
(long)m_times);
|
||||
fprintf (stderr, "%s%54" PRIu64 "%27" PRIu64 "\n", "Total",
|
||||
(uint64_t)m_allocated, (uint64_t)m_times);
|
||||
print_dash_line ();
|
||||
}
|
||||
|
||||
|
|
|
@ -1114,7 +1114,7 @@ free_node (tree node)
|
|||
{
|
||||
tree_code_counts[(int) TREE_CODE (node)]--;
|
||||
tree_node_counts[(int) t_kind]--;
|
||||
tree_node_sizes[(int) t_kind] -= tree_code_size (TREE_CODE (node));
|
||||
tree_node_sizes[(int) t_kind] -= tree_size (node);
|
||||
}
|
||||
if (CODE_CONTAINS_STRUCT (code, TS_CONSTRUCTOR))
|
||||
vec_free (CONSTRUCTOR_ELTS (node));
|
||||
|
|
Loading…
Reference in New Issue