On 04/12/2011 11:49 AM, Lawrence Crowl wrote:
This patch is available for review at http://codereview.appspot.com/4378056
I tried to comment there, but it didn't seem to be working; looking at
the side-by-side diffs didn't show any changes, and double-clicking on a
line in the patch form didn't let me add a comment.
+ timevar_start (TV_RESOLVE_OVERLOAD);
Putting this in perform_overload_resolution isn't enough; only a couple
of cases of overload resolution actually use it. Any function that
calls tourney will also need this.
+lookup_template_class (tree d1, tree arglist, tree in_decl, tree context,
+ int entering_scope, tsubst_flags_t complain)
+{
+ tree ret;
+ bool subtime = timevar_cond_start (TV_NAME_LOOKUP);
Let's count this as TV_INSTANTIATE_TEMPLATE instead.
@@ -17194,7 +17225,7 @@ instantiate_decl (tree d, int defer_ok,
- timevar_push (TV_PARSE);
+ timevar_push (TV_PARSE_GLOBAL);
This too.
@@ -1911,7 +1911,7 @@ ggc_collect (void)
- timevar_push (TV_GC);
+ timevar_start (TV_GC);
Why this change? GC time shouldn't be counted against whatever we
happen to be parsing when it happens.
+DEFTIMEVAR (TV_PHASE_C_WRAPUP_CHECK , "phase C wrapup & check")
+DEFTIMEVAR (TV_PHASE_CP_DEFERRED , "phase C++ deferred")
Why do these need to be different timevars?
+DEFTIMEVAR (TV_PARSE_INMETH , "parser inl. meth. body")
Is it really important to distinguish this from other functions?
-DEFTIMEVAR (TV_NAME_LOOKUP , "name lookup")
-DEFTIMEVAR (TV_OVERLOAD , "overload resolution")
-DEFTIMEVAR (TV_TEMPLATE_INSTANTIATION, "template instantiation")
+DEFTIMEVAR (TV_INSTANTIATE_TEMPLATE , "instantiate template")
+DEFTIMEVAR (TV_NAME_LOOKUP , "|name lookup")
+DEFTIMEVAR (TV_RESOLVE_OVERLOAD , "|overload resolution")
Why these changes?
@@ -564,6 +564,8 @@ compile_file (void)
+ timevar_start (TV_PHASE_PARSING);
Why does this happen before...
+ timevar_push (TV_PARSE_GLOBAL);
...this? I would think the bits in there should be part of _SETUP.
@@ -16760,6 +16770,7 @@ cp_parser_class_specifier (cp_parser* parser)
+ timevar_pop (TV_PARSE_STRUCT);
+ timevar_pop (TV_PARSE_STRUCT);
+ timevar_pop (TV_PARSE_STRUCT);
+ timevar_pop (TV_PARSE_STRUCT);
Why not factor this out like you did with so many functions outside the
parser?
Jason