Does any of you use print_class_statistics?
It seems most of these variables were set-but-unused even in gcc-2.95 (!). So
I think we can safely 86 all of this. Or is the "n_vtables" info interesting
in any way?
Bootstrapped/regtested on x86_64-linux, ok for trunk?
2018-02-01 Marek Polacek
* class.c: Remove unused global variables.
(build_primary_vtable): Don't gather statistics.
(print_class_statistics): Remove.
* cp-tree.h (print_class_statistics): Remove.
* tree.c (cxx_print_statistics): Don't call print_class_statistics.
diff --git gcc/cp/class.c gcc/cp/class.c
index 4103630231a..7b2afc14dbe 100644
--- gcc/cp/class.c
+++ gcc/cp/class.c
@@ -215,16 +215,6 @@ static tree end_of_base (tree);
static tree get_vcall_index (tree, tree);
static bool type_maybe_constexpr_default_constructor (tree);
-/* Variables shared between class.c and call.c. */
-
-int n_vtables = 0;
-int n_vtable_entries = 0;
-int n_vtable_searches = 0;
-int n_vtable_elems = 0;
-int n_convert_harshness = 0;
-int n_compute_conversion_costs = 0;
-int n_inner_fields_searched = 0;
-
/* Return a COND_EXPR that executes TRUE_STMT if this execution of the
'structor is in charge of 'structing virtual bases, or FALSE_STMT
otherwise. */
@@ -892,12 +882,6 @@ build_primary_vtable (tree binfo, tree type)
virtuals = NULL_TREE;
}
- if (GATHER_STATISTICS)
-{
- n_vtables += 1;
- n_vtable_elems += list_length (virtuals);
-}
-
/* Initialize the association list for this type, based
on our first approximation. */
BINFO_VTABLE (TYPE_BINFO (type)) = decl;
@@ -8118,23 +8102,6 @@ get_vfield_name (tree type)
return get_identifier (buf);
}
-void
-print_class_statistics (void)
-{
- if (! GATHER_STATISTICS)
-return;
-
- fprintf (stderr, "convert_harshness = %d\n", n_convert_harshness);
- fprintf (stderr, "compute_conversion_costs = %d\n",
n_compute_conversion_costs);
- if (n_vtables)
-{
- fprintf (stderr, "vtables = %d; vtable searches = %d\n",
- n_vtables, n_vtable_searches);
- fprintf (stderr, "vtable entries = %d; vtable elems = %d\n",
- n_vtable_entries, n_vtable_elems);
-}
-}
-
/* Build a dummy reference to ourselves so Derived::Base (and A::A) works,
according to [class]:
The class-name is also inserted
diff --git gcc/cp/cp-tree.h gcc/cp/cp-tree.h
index 8983674881d..c7d42d3d76f 100644
--- gcc/cp/cp-tree.h
+++ gcc/cp/cp-tree.h
@@ -6036,7 +6036,6 @@ extern int current_lang_depth (void);
extern void push_lang_context (tree);
extern void pop_lang_context (void);
extern tree instantiate_type (tree, tree, tsubst_flags_t);
-extern void print_class_statistics (void);
extern void build_self_reference (void);
extern int same_signature_p(const_tree, const_tree);
extern void maybe_add_class_template_decl_list (tree, tree, int);
diff --git gcc/cp/tree.c gcc/cp/tree.c
index e87c59659a5..1ab10099780 100644
--- gcc/cp/tree.c
+++ gcc/cp/tree.c
@@ -2831,7 +2831,6 @@ extern int depth_reached;
void
cxx_print_statistics (void)
{
- print_class_statistics ();
print_template_statistics ();
if (GATHER_STATISTICS)
fprintf (stderr, "maximum template instantiation depth reached: %d\n",
Marek