summaryrefslogtreecommitdiff
path: root/gcc/timevar.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/timevar.c')
-rw-r--r--gcc/timevar.c34
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