@@ -1,3 +1,7 @@
+2012-03-27 Diego Novillo <dnovillo@google.com>
+
+ * c.opt (fpph-stats): Add flag.
+
2012-03-15 Lawrence Crowl <crowl@google.com>
* c.opt (-fpph-check): New.
@@ -1013,6 +1013,10 @@ fpph-include-tree
C++ Var(flag_pph_include_tree)
-fpph-include-tree Print the include tree for the current TU to stderr
+fpph-stats
+C++ Var(flag_pph_stats)
+-fpph-stats Print statistics on PPH data structures
+
fpph-tracer=
C++ Joined RejectNegative UInteger Var(flag_pph_tracer)
-fpph-tracer Enable tracing of PPH streaming operations
@@ -1,3 +1,19 @@
+2012-03-27 Diego Novillo <dnovillo@google.com>
+
+ * pph-core.c (pph_stats): Declare.
+ (pph_init): Initialize.
+ (pph_cache_lookup): Update pph_stats.cache_lookups and
+ pph_stats.cache_hits.
+ (pph_dump_stats): New.
+ (pph_streamer_finish): Call it.
+ * pph-in.c (pph_in_record_marker): Update
+ pph_stats.num_records_by_marker and
+ pph_stats.num_records_by_tag.
+ * pph.h (enum pph_record_marker): Add value
+ PPH_NUM_RECORD_MARKERS.
+ (struct pph_stats_s): Declare.
+ (pph_stats_t): Declare.
+
2012-03-26 Diego Novillo <dnovillo@google.com>
* pph-core.c (pph_include_handler): Use timer TV_PPH.
@@ -353,6 +353,6 @@ cp/cxx-pretty-print.o: cp/cxx-pretty-print.c $(CXX_PRETTY_PRINT_H) \
$(CONFIG_H) $(SYSTEM_H) $(TM_H) coretypes.h $(CXX_TREE_H) tree-pretty-print.h
cp/pph-core.o: cp/pph-core.c $(CXX_PPH_COMMON_H) $(CPPLIB_H) $(TIMEVAR_H) \
$(TREE_INLINE_H) tree-pretty-print.h fixed-value.h pointer-set.h \
- toplev.h
+ toplev.h $(TIMEVAR_H)
cp/pph-out.o: cp/pph-out.c $(CXX_PPH_COMMON_H) $(CGRAPH_H)
cp/pph-in.o: cp/pph-in.c $(CXX_PPH_COMMON_H) pointer-set.h toplev.h
@@ -48,7 +48,10 @@ along with GCC; see the file COPYING3. If not see
#include "version.h"
#include "cppbuiltin.h"
#include "streamer-hooks.h"
+#include "timevar.h"
+/* PPH statistics. */
+pph_stats_t pph_stats;
/* Mapping between a name string and the registry index for the
corresponding PPH image. */
@@ -690,6 +693,8 @@ pph_cache_lookup (pph_cache *cache, void *data, unsigned *ix_p,
unsigned ix;
pph_cache_entry *e;
+ pph_stats.cache_lookups++;
+
if (cache == NULL)
cache = pph_preloaded_cache;
@@ -710,6 +715,8 @@ pph_cache_lookup (pph_cache *cache, void *data, unsigned *ix_p,
it matches the tag we pulled from the cache. */
if (tag != PPH_null)
gcc_assert (tag == e->tag);
+
+ pph_stats.cache_hits++;
}
if (ix_p)
@@ -1517,12 +1524,86 @@ pph_init (void)
pph_reader_init ();
+ /* Initialize statistics collection. */
+ memset (&pph_stats, 0, sizeof (pph_stats));
+
timevar_stop (TV_PPH);
}
/********************************************************** pph finalization */
+#define PERCENT(x,y) ((float)(x) * 100.0 / (float)(y))
+
+static const char *replay_strings[] = {
+ "PPH_REPLAY_DECLARE",
+ "PPH_REPLAY_EXPAND",
+ "PPH_REPLAY_EXPAND_1",
+ "PPH_REPLAY_FINISH_STRUCT_METHODS"
+};
+
+
+/* Dump statistics from PPH processing on F. */
+
+static void
+pph_dump_stats (FILE *f)
+{
+ size_t i;
+
+ if (f == NULL)
+ f = stderr;
+
+ fprintf (f, "\nPPH statistics\n");
+
+ fprintf (f, "\nRecords by type\n");
+ for (i = (size_t) PPH_RECORD_START; i < (size_t) PPH_NUM_RECORD_MARKERS; i++)
+ if (pph_stats.num_records_by_marker[i])
+ fprintf (f, "%40s: %10lu (%6.2f%%)\n",
+ marker_strings[i],
+ pph_stats.num_records_by_marker[i],
+ PERCENT (pph_stats.num_records_by_marker[i],
+ pph_stats.num_records));
+ fprintf (f, "%40s: %10lu (100.00%%)\n", "TOTAL", pph_stats.num_records);
+
+ fprintf (f, "\nRecords by tag\n");
+ for (i = (size_t) PPH_null; i < (size_t) PPH_NUM_TAGS; i++)
+ if (pph_stats.num_records_by_tag[i])
+ {
+ const char *name;
+ if (i == (size_t) PPH_null)
+ name = "PPH_null";
+ else if (i < (size_t) MAX_TREE_CODES)
+ name = tree_code_name[i];
+ else
+ name = tag_strings[i - (size_t) PPH_any_tree];
+ fprintf (f, "%40s: %10lu (%6.2f%%)\n",
+ name,
+ pph_stats.num_records_by_tag[i],
+ PERCENT (pph_stats.num_records_by_tag[i],
+ pph_stats.num_records));
+ }
+ fprintf (f, "%40s: %10lu (100.00%%)\n", "TOTAL", pph_stats.num_records);
+
+ fprintf (f, "\nReplay table\n");
+ for (i = (size_t) PPH_REPLAY_DECLARE; i < PPH_NUM_REPLAY_ACTIONS; i++)
+ if (pph_stats.num_replay_actions_by_action[i])
+ fprintf (f, "%40s: %10lu (%6.2f%%)\n",
+ replay_strings[i],
+ pph_stats.num_replay_actions_by_action[i],
+ PERCENT (pph_stats.num_replay_actions_by_action[i],
+ pph_stats.num_replay_actions));
+ fprintf (f, "%40s: %10lu (100.00%%)\n", "TOTAL",
+ pph_stats.num_replay_actions);
+
+ fprintf (f, "\n");
+ fprintf (f, "Cache lookups: %10lu\n", pph_stats.cache_lookups);
+ fprintf (f, "Cache hits: %10lu (%5.2f%%)\n", pph_stats.cache_hits,
+ PERCENT (pph_stats.cache_hits, pph_stats.cache_lookups));
+
+ fprintf (f, "\n");
+ timevar_print (f);
+}
+
/* Finalize the streamer. */
@@ -1552,6 +1633,10 @@ pph_streamer_finish (void)
/* Get rid of all the dead trees we may have had in caches. */
pph_cached_trees = NULL;
ggc_collect ();
+
+ /* If the user requested statistics, show them. */
+ if (flag_pph_stats)
+ pph_dump_stats (stderr);
}
@@ -353,7 +353,7 @@ pph_in_line_table_and_includes (pph_stream *stream)
enum pph_linetable_marker next_lt_marker;
int top_includer_ix;
- timevar_start (TV_PPH_RESTORE_LINE_TABLE);
+ timevar_start (TV_PPH_IN_LINE_TABLE);
used_before = LINEMAPS_ORDINARY_USED (line_table);
first = true;
@@ -462,7 +462,7 @@ pph_in_line_table_and_includes (pph_stream *stream)
linemap_add (line_table, LC_LEAVE, 0, NULL, 0);
gcc_assert (line_table->depth == old_depth);
- timevar_stop (TV_PPH_RESTORE_LINE_TABLE);
+ timevar_stop (TV_PPH_IN_LINE_TABLE);
return MAP_START_LOCATION (LINEMAPS_ORDINARY_MAP_AT (line_table, used_before));
}
@@ -504,6 +504,10 @@ pph_in_record_marker (pph_stream *stream, enum pph_tag *tag_p)
if (flag_pph_tracer >= 5)
pph_trace_marker (m, *tag_p);
+ pph_stats.num_records_by_marker[m]++;
+ pph_stats.num_records_by_tag[*tag_p]++;
+ pph_stats.num_records++;
+
return m;
}
@@ -2536,8 +2540,6 @@ pph_in_merge_body_namespace_decl (pph_stream *stream)
if (flag_pph_tracer)
pph_trace_tree (decl, "?", pph_trace_front, pph_trace_merge_body);
- gcc_assert (DECL_NAME (decl));
-
/* If EXPR is a namespace alias, we do not need to merge
its binding level (namespaces aliases do not have a
binding level, they use the one from the namespace they
@@ -2887,7 +2889,7 @@ pph_in_replay (pph_stream *stream)
{
unsigned i, num;
- timevar_start (TV_PPH_RESTORE_REPLAY);
+ timevar_start (TV_PPH_IN_REPLAY);
/* Register all the symbols in STREAM in the same order of the
original compilation for this header file. */
@@ -2979,9 +2981,14 @@ pph_in_replay (pph_stream *stream)
}
else
gcc_unreachable ();
+
+ pph_stats.num_replay_actions_by_action[entry.action]++;
}
- timevar_stop (TV_PPH_RESTORE_REPLAY);
+
+ pph_stats.num_replay_actions = num;
+
+ timevar_stop (TV_PPH_IN_REPLAY);
}
@@ -3036,7 +3043,7 @@ pph_in_identifiers (pph_stream *stream, cpp_idents_used *identifiers)
unsigned int max_ident_len, max_value_len, num_entries;
unsigned int ident_len, before_len, after_len;
- timevar_start (TV_PPH_RESTORE_IDENTIFIERS);
+ timevar_start (TV_PPH_IN_IDENTIFIERS);
max_ident_len = pph_in_uint (stream);
identifiers->max_ident_len = max_ident_len;
@@ -3100,7 +3107,7 @@ pph_in_identifiers (pph_stream *stream, cpp_idents_used *identifiers)
}
}
- timevar_stop (TV_PPH_RESTORE_IDENTIFIERS);
+ timevar_stop (TV_PPH_IN_IDENTIFIERS);
}
@@ -3114,7 +3121,7 @@ pph_in_global_binding_keys (pph_stream *stream)
cp_binding_level *bl, *other_bl;
bool existed_p;
- timevar_start (TV_PPH_RESTORE_MERGE_KEYS);
+ timevar_start (TV_PPH_IN_MERGE_KEYS);
bl = scope_chain->bindings;
other_bl = pph_in_binding_level_start (stream, bl, &existed_p);
@@ -3131,7 +3138,7 @@ pph_in_global_binding_keys (pph_stream *stream)
bound to scope_chain->bindings. */
pph_in_merge_key_binding_level (stream, &bl);
- timevar_stop (TV_PPH_RESTORE_MERGE_KEYS);
+ timevar_stop (TV_PPH_IN_MERGE_KEYS);
}
@@ -3144,14 +3151,14 @@ pph_in_global_binding_bodies (pph_stream *stream)
{
cp_binding_level *bl = scope_chain->bindings;
- timevar_start (TV_PPH_RESTORE_MERGE_BODIES);
+ timevar_start (TV_PPH_IN_MERGE_BODIES);
/* Once all the symbols and types at every binding level have been
merged to the corresponding binding levels in the current
compilation, read all the bodies. */
pph_in_merge_body_binding_level (stream, bl);
- timevar_stop (TV_PPH_RESTORE_MERGE_BODIES);
+ timevar_stop (TV_PPH_IN_MERGE_BODIES);
}
@@ -3235,14 +3242,14 @@ pph_read_file_1 (pph_stream *stream)
/* Read and merge the other global state collected during parsing of
the original header. */
- timevar_start (TV_PPH_RESTORE_MISC);
+ timevar_start (TV_PPH_IN_MISC);
pph_union_into_chain (&keyed_classes, pph_in_tree (stream));
pph_union_into_tree_vec (&unemitted_tinfo_decls, pph_in_tree_vec (stream));
file_static_aggregates = pph_in_tree (stream);
static_aggregates = chainon (file_static_aggregates, static_aggregates);
pph_in_decl2_hidden_state (stream);
pph_in_canonical_template_parms (stream);
- timevar_stop (TV_PPH_RESTORE_MISC);
+ timevar_stop (TV_PPH_IN_MISC);
/* Read and process the symbol and type re-play table. This
re-executes all the actions done to present symbols and types to
@@ -3290,7 +3297,7 @@ pph_add_include (pph_stream *parent, pph_stream *include)
pph_stream *
pph_read_file (const char *filename, pph_stream *parent)
{
- timevar_start (TV_PPH_RESTORE);
+ timevar_start (TV_PPH_IN);
pph_stream *stream = pph_stream_open (filename, "rb");
if (stream)
@@ -3308,7 +3315,7 @@ pph_read_file (const char *filename, pph_stream *parent)
pph_add_include (parent, stream);
}
- timevar_stop (TV_PPH_RESTORE);
+ timevar_stop (TV_PPH_IN);
return stream;
}
@@ -85,14 +85,14 @@ pph_init_write (pph_stream *stream)
void
pph_writer_init (void)
{
- timevar_start (TV_PPH_SAVE);
+ timevar_start (TV_PPH_OUT);
gcc_assert (pph_out_stream == NULL);
pph_out_stream = pph_stream_open (pph_out_file, "wb");
if (pph_out_stream == NULL)
fatal_error ("Cannot open PPH file %s for writing: %m", pph_out_file);
- timevar_stop (TV_PPH_SAVE);
+ timevar_stop (TV_PPH_OUT);
}
@@ -323,7 +323,7 @@ pph_out_line_table_and_includes (pph_stream *stream)
{
int ix;
- timevar_start (TV_PPH_SAVE_LINE_TABLE);
+ timevar_start (TV_PPH_OUT_LINE_TABLE);
/* Any #include should have been fully parsed and exited at this point. */
gcc_assert (line_table->depth == 0);
@@ -430,7 +430,7 @@ pph_out_line_table_and_includes (pph_stream *stream)
pph_out_uint (stream, line_table->max_column_hint);
- timevar_stop (TV_PPH_SAVE_LINE_TABLE);
+ timevar_stop (TV_PPH_OUT_LINE_TABLE);
}
@@ -519,6 +519,10 @@ pph_out_record_marker (pph_stream *stream, enum pph_record_marker marker,
if (flag_pph_tracer >= 5)
pph_trace_marker (marker, tag);
+
+ pph_stats.num_records_by_marker[marker]++;
+ pph_stats.num_records_by_tag[tag]++;
+ pph_stats.num_records++;
}
@@ -2440,7 +2444,7 @@ pph_out_replay_action (pph_stream *stream, enum pph_replay_action action)
|| action == PPH_REPLAY_EXPAND
|| action == PPH_REPLAY_EXPAND_1
|| action == PPH_REPLAY_FINISH_STRUCT_METHODS)
- && (enum pph_replay_action)(unsigned char) action);
+ && action == (enum pph_replay_action)(unsigned char) action);
pph_out_uchar (stream, action);
}
@@ -2511,7 +2515,7 @@ pph_out_replay (pph_stream *stream)
pph_replay_entry *entry;
unsigned i;
- timevar_start (TV_PPH_SAVE_REPLAY);
+ timevar_start (TV_PPH_OUT_REPLAY);
pph_out_uint (stream, VEC_length (pph_replay_entry, stream->replay.v));
FOR_EACH_VEC_ELT (pph_replay_entry, stream->replay.v, i, entry)
@@ -2534,9 +2538,14 @@ pph_out_replay (pph_stream *stream)
DECL_STRUCT_FUNCTION (entry->to_replay));
pph_out_bool (stream, cgraph_get_node (entry->to_replay) != NULL);
}
+
+ pph_stats.num_replay_actions_by_action[entry->action]++;
}
- timevar_stop (TV_PPH_SAVE_REPLAY);
+ pph_stats.num_replay_actions = VEC_length (pph_replay_entry,
+ stream->replay.v);
+
+ timevar_stop (TV_PPH_OUT_REPLAY);
}
@@ -2547,7 +2556,7 @@ pph_out_identifiers (pph_stream *stream, cpp_idents_used *identifiers)
{
unsigned int num_entries, active_entries, id;
- timevar_start (TV_PPH_SAVE_IDENTIFIERS);
+ timevar_start (TV_PPH_OUT_IDENTIFIERS);
num_entries = identifiers->num_entries;
pph_out_uint (stream, identifiers->max_ident_len);
@@ -2590,7 +2599,7 @@ pph_out_identifiers (pph_stream *stream, cpp_idents_used *identifiers)
entry->after_len);
}
- timevar_stop (TV_PPH_SAVE_IDENTIFIERS);
+ timevar_stop (TV_PPH_OUT_IDENTIFIERS);
}
@@ -2601,7 +2610,7 @@ pph_out_global_binding_keys (pph_stream *stream)
{
cp_binding_level *bl;
- timevar_start (TV_PPH_SAVE_MERGE_KEYS);
+ timevar_start (TV_PPH_OUT_MERGE_KEYS);
/* We only need to write out the scope_chain->bindings, everything
else should be NULL or be some temporary disposable state.
@@ -2634,7 +2643,7 @@ pph_out_global_binding_keys (pph_stream *stream)
reading multiple PPH images. */
pph_out_merge_key_binding_level (stream, bl);
- timevar_stop (TV_PPH_SAVE_MERGE_KEYS);
+ timevar_stop (TV_PPH_OUT_MERGE_KEYS);
}
@@ -2645,12 +2654,12 @@ pph_out_global_binding_bodies (pph_stream *stream)
{
cp_binding_level *bl = scope_chain->bindings;
- timevar_start (TV_PPH_SAVE_MERGE_BODIES);
+ timevar_start (TV_PPH_OUT_MERGE_BODIES);
/* Now emit all the bodies. */
pph_out_merge_body_binding_level (stream, bl);
- timevar_stop (TV_PPH_SAVE_MERGE_BODIES);
+ timevar_stop (TV_PPH_OUT_MERGE_BODIES);
}
@@ -2680,13 +2689,13 @@ pph_write_file (pph_stream *stream)
/* Emit other global state kept by the parser. FIXME pph, these
globals should be fields in struct cp_parser. */
- timevar_start (TV_PPH_SAVE_MISC);
+ timevar_start (TV_PPH_OUT_MISC);
pph_out_tree (stream, keyed_classes);
pph_out_tree_vec (stream, unemitted_tinfo_decls);
pph_out_tree (stream, static_aggregates);
pph_out_decl2_hidden_state (stream);
pph_out_canonical_template_parms (stream);
- timevar_stop (TV_PPH_SAVE_MISC);
+ timevar_stop (TV_PPH_OUT_MISC);
/* Emit the symbol table. The symbol table must be emitted at the
end because all the symbols read from children PPH images are not
@@ -2798,7 +2807,7 @@ pph_writer_finish (void)
if (pph_out_stream == NULL)
return;
- timevar_start (TV_PPH_SAVE);
+ timevar_start (TV_PPH_OUT);
if (!pph_check_main_missing_guard || pph_check_main_guarded ())
pph_write_file (pph_out_stream);
@@ -2806,7 +2815,7 @@ pph_writer_finish (void)
pph_stream_close (pph_out_stream);
pph_out_stream = NULL;
- timevar_stop (TV_PPH_SAVE);
+ timevar_stop (TV_PPH_OUT);
}
@@ -36,7 +36,7 @@ typedef struct pph_stream pph_stream;
middle-end. */
enum pph_replay_action {
/* Declare this symbol with rest_of_decl_compilation. */
- PPH_REPLAY_DECLARE = 0x23,
+ PPH_REPLAY_DECLARE = 0x0,
/* Expand this function with expand_or_defer_fn. */
PPH_REPLAY_EXPAND,
@@ -46,13 +46,16 @@ enum pph_replay_action {
/* Layout the method vector for this type with
finish_struct_methods. */
- PPH_REPLAY_FINISH_STRUCT_METHODS
+ PPH_REPLAY_FINISH_STRUCT_METHODS,
+
+ /* This marker must always be last. */
+ PPH_NUM_REPLAY_ACTIONS
};
/* Record markers. */
enum pph_record_marker {
/* This record contains the physical representation of the memory data. */
- PPH_RECORD_START = 0x23,
+ PPH_RECORD_START = 0,
/* Like PPH_RECORD_START, but the reconstructed data should not be
added to the pickle cache (see pph_cache_should_handle). */
@@ -97,7 +100,10 @@ enum pph_record_marker {
/* Preloaded reference. This marker indicates that this data is a preloaded
node created by the front-end at the beginning of compilation, which we
do not need to stream out as it will already exist on the way in. */
- PPH_RECORD_PREF
+ PPH_RECORD_PREF,
+
+ /* This marker must always be last. */
+ PPH_NUM_RECORD_MARKERS
};
/* Record type tags. Every record saved on a PPH image contains a data
@@ -135,6 +141,34 @@ enum pph_tag {
};
+/* PPH statistics. */
+
+typedef struct pph_stats_s {
+ /* Number of records per record class. */
+ unsigned long num_records_by_marker[PPH_NUM_RECORD_MARKERS];
+
+ /* Number of records per type tag. */
+ unsigned long num_records_by_tag[PPH_NUM_TAGS];
+
+ /* Total number of records. */
+ unsigned long num_records;
+
+ /* Pickle cache lookups. */
+ unsigned long cache_lookups;
+
+ /* Pickle cache hits. */
+ unsigned long cache_hits;
+
+ /* Number of replay actions in the replay table. */
+ unsigned long num_replay_actions_by_action[PPH_NUM_REPLAY_ACTIONS];
+
+ /* Total number of replay actions in the replay table. */
+ unsigned long num_replay_actions;
+} pph_stats_t;
+
+extern pph_stats_t pph_stats;
+
+
/* Global state. FIXME pph, get rid of these. */
/* Log file where PPH analysis is written to. Controlled by
@@ -20907,12 +20907,12 @@ pph_in_bodies_spec_entry_htab (pph_stream *stream, htab_t *table)
void
pph_out_merge_key_template_state (pph_stream *stream ATTRIBUTE_UNUSED)
{
- timevar_start (TV_PPH_SAVE_MERGE_KEYS);
+ timevar_start (TV_PPH_OUT_MERGE_KEYS);
pph_out_spec_entry_htab (stream, &decl_specializations,
pph_out_key_spec_entry_slot);
pph_out_spec_entry_htab (stream, &type_specializations,
pph_out_key_spec_entry_slot);
- timevar_stop (TV_PPH_SAVE_MERGE_KEYS);
+ timevar_stop (TV_PPH_OUT_MERGE_KEYS);
}
@@ -20921,7 +20921,7 @@ pph_out_merge_key_template_state (pph_stream *stream ATTRIBUTE_UNUSED)
void
pph_out_merge_body_template_state (pph_stream *stream)
{
- timevar_start (TV_PPH_SAVE_MERGE_BODIES);
+ timevar_start (TV_PPH_OUT_MERGE_BODIES);
pph_out_spec_entry_htab (stream, &decl_specializations,
pph_out_body_spec_entry_slot);
@@ -20935,7 +20935,7 @@ pph_out_merge_body_template_state (pph_stream *stream)
pph_dump_pending_templates_list (stderr);
}
- timevar_stop (TV_PPH_SAVE_MERGE_BODIES);
+ timevar_stop (TV_PPH_OUT_MERGE_BODIES);
}
@@ -20950,7 +20950,7 @@ static strptrmap_t *type_spec_tbl = NULL;
void
pph_in_merge_key_template_state (pph_stream *stream ATTRIBUTE_UNUSED)
{
- timevar_start (TV_PPH_RESTORE_MERGE_KEYS);
+ timevar_start (TV_PPH_IN_MERGE_KEYS);
if (!decl_spec_tbl)
decl_spec_tbl = strptrmap_create ();
@@ -20961,7 +20961,7 @@ pph_in_merge_key_template_state (pph_stream *stream ATTRIBUTE_UNUSED)
pph_in_keys_spec_entry_htab (stream, pph_in_search_key_spec,
type_spec_tbl);
- timevar_stop (TV_PPH_RESTORE_MERGE_KEYS);
+ timevar_stop (TV_PPH_IN_MERGE_KEYS);
}
@@ -20970,7 +20970,7 @@ pph_in_merge_key_template_state (pph_stream *stream ATTRIBUTE_UNUSED)
void
pph_in_merge_body_template_state (pph_stream *stream)
{
- timevar_start (TV_PPH_RESTORE_MERGE_BODIES);
+ timevar_start (TV_PPH_IN_MERGE_BODIES);
pph_in_bodies_spec_entry_htab (stream, &decl_specializations);
pph_in_bodies_spec_entry_htab (stream, &type_specializations);
@@ -20982,7 +20982,7 @@ pph_in_merge_body_template_state (pph_stream *stream)
pph_dump_pending_templates_list (stderr);
}
- timevar_stop (TV_PPH_RESTORE_MERGE_BODIES);
+ timevar_stop (TV_PPH_IN_MERGE_BODIES);
}
@@ -61,24 +61,24 @@ DEFTIMEVAR (TV_PCH_RESTORE , "PCH main state restore")
DEFTIMEVAR (TV_PCH_CPP_RESTORE , "PCH preprocessor state restore")
/* Time spent saving/restoring PPH state. */
-DEFTIMEVAR (TV_PPH , "PPH (global)")
+DEFTIMEVAR (TV_PPH , "PPH (global)")
DEFTIMEVAR (TV_PPH_VALIDATE_IDENTIFIERS, "PPH validate identifiers")
-DEFTIMEVAR (TV_PPH_SAVE , "PPH save (main)")
-DEFTIMEVAR (TV_PPH_SAVE_LINE_TABLE , "PPH save (line table)")
-DEFTIMEVAR (TV_PPH_SAVE_IDENTIFIERS , "PPH save (identifiers)")
-DEFTIMEVAR (TV_PPH_SAVE_MERGE_KEYS , "PPH save (merge keys)")
-DEFTIMEVAR (TV_PPH_SAVE_MERGE_BODIES , "PPH save (merge bodies)")
-DEFTIMEVAR (TV_PPH_SAVE_MISC , "PPH save (misc state)")
-DEFTIMEVAR (TV_PPH_SAVE_REPLAY , "PPH save (replay table)")
+DEFTIMEVAR (TV_PPH_OUT , "PPH out (main)")
+DEFTIMEVAR (TV_PPH_OUT_LINE_TABLE , "PPH out (line table)")
+DEFTIMEVAR (TV_PPH_OUT_IDENTIFIERS , "PPH out (identifiers)")
+DEFTIMEVAR (TV_PPH_OUT_MERGE_KEYS , "PPH out (merge keys)")
+DEFTIMEVAR (TV_PPH_OUT_MERGE_BODIES , "PPH out (merge bodies)")
+DEFTIMEVAR (TV_PPH_OUT_MISC , "PPH out (misc state)")
+DEFTIMEVAR (TV_PPH_OUT_REPLAY , "PPH out (replay table)")
-DEFTIMEVAR (TV_PPH_RESTORE , "PPH restore (main)")
-DEFTIMEVAR (TV_PPH_RESTORE_LINE_TABLE , "PPH restore (line table)")
-DEFTIMEVAR (TV_PPH_RESTORE_IDENTIFIERS , "PPH restore (identifiers)")
-DEFTIMEVAR (TV_PPH_RESTORE_MERGE_KEYS , "PPH restore (merge keys)")
-DEFTIMEVAR (TV_PPH_RESTORE_MERGE_BODIES, "PPH restore (merge bodies)")
-DEFTIMEVAR (TV_PPH_RESTORE_MISC , "PPH restore (misc state)")
-DEFTIMEVAR (TV_PPH_RESTORE_REPLAY , "PPH restore (replay table)")
+DEFTIMEVAR (TV_PPH_IN , "PPH in (main)")
+DEFTIMEVAR (TV_PPH_IN_LINE_TABLE , "PPH in (line table)")
+DEFTIMEVAR (TV_PPH_IN_IDENTIFIERS , "PPH in (identifiers)")
+DEFTIMEVAR (TV_PPH_IN_MERGE_KEYS , "PPH in (merge keys)")
+DEFTIMEVAR (TV_PPH_IN_MERGE_BODIES , "PPH in (merge bodies)")
+DEFTIMEVAR (TV_PPH_IN_MISC , "PPH in (misc state)")
+DEFTIMEVAR (TV_PPH_IN_REPLAY , "PPH in (replay table)")
DEFTIMEVAR (TV_CGRAPH , "callgraph construction")
DEFTIMEVAR (TV_CGRAPHOPT , "callgraph optimization")