@@ -10306,11 +10306,16 @@ c_write_global_declarations_1 (tree globals)
}
while (reconsider);
+ /* ?? For completeness, we could stop the TV_PHASE_DEFERRED timer
+ here, and start the TV_PHASE_DBGINFO timer. Is it worth it, or
+ would it convolute things? */
for (decl = globals; decl; decl = DECL_CHAIN (decl))
{
check_global_declaration_1 (decl);
debug_hooks->early_global_decl (decl);
}
+ /* ?? Similarly here. Stop TV_PHASE_DBGINFO and start
+ TV_PHASE_DEFERRED again. */
}
/* Callback to collect a source_ref from a DECL. */
@@ -10373,6 +10378,9 @@ c_parse_final_cleanups (void)
if (pch_file)
return;
+ timevar_stop (TV_PHASE_PARSING);
+ timevar_start (TV_PHASE_DEFERRED);
+
/* Do the Objective-C stuff. This is where all the Objective-C
module stuff gets generated (symtab, class/protocol/selector
lists etc). */
@@ -10414,6 +10422,9 @@ c_parse_final_cleanups (void)
c_write_global_declarations_1 (BLOCK_VARS (DECL_INITIAL (t)));
c_write_global_declarations_1 (BLOCK_VARS (ext_block));
+ timevar_stop (TV_PHASE_DEFERRED);
+ timevar_start (TV_PHASE_PARSING);
+
ext_block = NULL;
}
@@ -4354,6 +4354,9 @@ c_parse_final_cleanups (void)
/* FIXME - huh? was input_line -= 1;*/
+ timevar_stop (TV_PHASE_PARSING);
+ timevar_start (TV_PHASE_DEFERRED);
+
/* We now have to write out all the stuff we put off writing out.
These include:
@@ -4671,6 +4674,9 @@ c_parse_final_cleanups (void)
/* Collect candidates for Java hidden aliases. */
java_hidden_aliases = collect_candidates_for_java_method_aliases ();
+ timevar_stop (TV_PHASE_DEFERRED);
+ timevar_start (TV_PHASE_PARSING);
+
if (flag_vtable_verify)
{
vtv_recover_class_info ();
@@ -4680,6 +4686,8 @@ c_parse_final_cleanups (void)
/* Issue warnings about static, but not defined, functions, etc, and
generate initial debug information. */
+ timevar_stop (TV_PHASE_PARSING);
+ timevar_start (TV_PHASE_DBGINFO);
walk_namespaces (emit_debug_for_namespace, 0);
if (vec_safe_length (pending_statics) != 0)
{
@@ -4689,7 +4697,8 @@ c_parse_final_cleanups (void)
pending_statics->length (),
EMIT_DEBUG_EARLY);
}
-
+ timevar_stop (TV_PHASE_DBGINFO);
+ timevar_start (TV_PHASE_PARSING);
}
/* Perform any post compilation-proper cleanups for the C++ front-end.
@@ -300,6 +300,8 @@ global_decl_processing_and_early_debug (void)
tree globals, decl, *vec;
int len, i;
+ timevar_stop (TV_PHASE_PARSING);
+ timevar_start (TV_PHASE_DEFERRED);
/* Really define vars that have had only a tentative definition.
Really output inline functions that must actually be callable
and have not been output so far. */
@@ -316,9 +318,13 @@ global_decl_processing_and_early_debug (void)
wrapup_global_declarations (vec, len);
check_global_declarations (vec, len);
+ timevar_stop (TV_PHASE_DEFERRED);
+ timevar_start (TV_PHASE_DBGINFO);
emit_debug_global_declarations (vec, len, EMIT_DEBUG_EARLY);
+ timevar_stop (TV_PHASE_DBGINFO);
+ timevar_start (TV_PHASE_PARSING);
free (vec);
}
@@ -40,6 +40,7 @@ DEFTIMEVAR (TV_TOTAL , "total time")
validate_phases). */
DEFTIMEVAR (TV_PHASE_SETUP , "phase setup")
DEFTIMEVAR (TV_PHASE_PARSING , "phase parsing")
+DEFTIMEVAR (TV_PHASE_DEFERRED , "phase lang. deferred")
DEFTIMEVAR (TV_PHASE_LATE_PARSING_CLEANUPS, "phase late parsing cleanups")
DEFTIMEVAR (TV_PHASE_OPT_GEN , "phase opt and generate")
DEFTIMEVAR (TV_PHASE_DBGINFO , "phase debug info")