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 <pola...@redhat.com> * 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