Commit 43331dfb by Richard Biener Committed by Richard Biener

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
parent c60ec7c2
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
......
......@@ -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
......
......@@ -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));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment