diff options
Diffstat (limited to 'gcc/timevar.c')
-rw-r--r-- | gcc/timevar.c | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/gcc/timevar.c b/gcc/timevar.c index 5a79fa7ccab..cce106abd71 100644 --- a/gcc/timevar.c +++ b/gcc/timevar.c @@ -95,8 +95,6 @@ static struct timevar_time_def start_time; static void get_time PARAMS ((struct timevar_time_def *)); -static void timevar_add - PARAMS ((struct timevar_time_def *, struct timevar_time_def *)); static void timevar_accumulate PARAMS ((struct timevar_time_def *, struct timevar_time_def *, struct timevar_time_def *)); @@ -197,18 +195,6 @@ get_time (now) #endif /* __BEOS__ */ } -/* Add ELAPSED to TIMER. */ - -static void -timevar_add (timer, elapsed) - struct timevar_time_def *timer; - struct timevar_time_def *elapsed; -{ - timer->user += elapsed->user; - timer->sys += elapsed->sys; - timer->wall += elapsed->wall; -} - /* Add the difference between STOP_TIME and START_TIME to TIMER. */ static void @@ -387,18 +373,22 @@ timevar_get (timevar, elapsed) struct timevar_time_def *elapsed; { struct timevar_def *tv = &timevars[timevar]; + struct timevar_time_def now; *elapsed = tv->elapsed; - + /* Is TIMEVAR currently running as a standalone timer? */ if (tv->standalone) - /* Add the time elapsed since the it was started. */ - timevar_add (elapsed, &tv->start_time); - - /* Is TIMEVAR at the top of the timer stack? */ - if (stack->timevar == tv) - /* Add the elapsed time since it was pushed. */ - timevar_add (elapsed, &start_time); + { + get_time (&now); + timevar_accumulate (elapsed, &tv->start_time, &now); + } + /* Or is TIMEVAR at the top of the timer stack? */ + else if (stack->timevar == tv) + { + get_time (&now); + timevar_accumulate (elapsed, &start_time, &now); + } } /* Summarize timing variables to FP. The timing variable TV_TOTAL has |