X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/fdabfd76d673b81593fcabda77ad36f595939bab..630a021850386acaee461fccee27718577d0a799:/lib/timevar.c diff --git a/lib/timevar.c b/lib/timevar.c index 7295fbc8..2889920c 100644 --- a/lib/timevar.c +++ b/lib/timevar.c @@ -1,27 +1,27 @@ /* Timing variables for measuring compiler performance. - Copyright (C) 2000, 2002 Free Software Foundation, Inc. + + Copyright (C) 2000, 2002, 2004, 2006, 2009-2013 Free Software + Foundation, Inc. + Contributed by Alex Samuel -This file is part of Bison, the GNU Compiler Compiler. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Bison is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -Bison is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ -You should have received a copy of the GNU General Public License -along with Bison; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +#include #if IN_GCC -#include "config.h" #include "system.h" #include "intl.h" #include "rtl.h" @@ -31,12 +31,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* This source file is taken from the GCC source code, with slight modifications that are under control of the IN_GCC preprocessor variable. The !IN_GCC part of this file is specific to Bison. */ - + # include "../src/system.h" # if HAVE_SYS_TIME_H # include # endif -int time_report = 0; +int timevar_report = 0; #endif @@ -63,13 +63,13 @@ struct tms #endif #if defined HAVE_DECL_GETRUSAGE && !HAVE_DECL_GETRUSAGE -extern int getrusage PARAMS ((int, struct rusage *)); +extern int getrusage (int, struct rusage *); #endif #if defined HAVE_DECL_TIMES && !HAVE_DECL_TIMES -extern clock_t times PARAMS ((struct tms *)); +extern clock_t times (struct tms *); #endif #if defined HAVE_DECL_CLOCK && !HAVE_DECL_CLOCK -extern clock_t clock PARAMS ((void)); +extern clock_t clock (void); #endif #ifndef RUSAGE_SELF @@ -118,12 +118,12 @@ extern clock_t clock PARAMS ((void)); _constants_ variable at run time, anyway? */ #ifdef USE_TIMES static float ticks_to_msec; -#define TICKS_TO_MSEC (1 / (float)TICKS_PER_SECOND) +#define TICKS_TO_MSEC (1.0 / TICKS_PER_SECOND) #endif #ifdef USE_CLOCK static float clocks_to_msec; -#define CLOCKS_TO_MSEC (1 / (float)CLOCKS_PER_SEC) +#define CLOCKS_TO_MSEC (1.0 / CLOCKS_PER_SEC) #endif #if IN_GCC @@ -134,7 +134,7 @@ static float clocks_to_msec; /* See timevar.h for an explanation of timing variables. */ /* This macro evaluates to nonzero if timing variables are enabled. */ -#define TIMEVAR_ENABLE (time_report) +#define TIMEVAR_ENABLE (timevar_report) /* A timing variable. */ @@ -187,11 +187,10 @@ static struct timevar_stack_def *unused_stack_instances; element. */ static struct timevar_time_def start_time; -static void get_time - PARAMS ((struct timevar_time_def *)); -static void timevar_accumulate - PARAMS ((struct timevar_time_def *, struct timevar_time_def *, - struct timevar_time_def *)); +static void get_time (struct timevar_time_def *); +static void timevar_accumulate (struct timevar_time_def *, + struct timevar_time_def *, + struct timevar_time_def *); /* Fill the current times into TIME. The definition of this function also defines any or all of the HAVE_USER_TIME, HAVE_SYS_TIME, and @@ -236,17 +235,17 @@ get_time (now) } } -/* Add the difference between STOP_TIME and START_TIME to TIMER. */ +/* Add the difference between STOP and START to TIMER. */ static void -timevar_accumulate (timer, start_time, stop_time) +timevar_accumulate (timer, start, stop) struct timevar_time_def *timer; - struct timevar_time_def *start_time; - struct timevar_time_def *stop_time; + struct timevar_time_def *start; + struct timevar_time_def *stop; { - timer->user += stop_time->user - start_time->user; - timer->sys += stop_time->sys - start_time->sys; - timer->wall += stop_time->wall - start_time->wall; + timer->user += stop->user - start->user; + timer->sys += stop->sys - start->sys; + timer->wall += stop->wall - start->wall; } /* Initialize timing variables. */ @@ -448,7 +447,7 @@ timevar_print (fp) FILE *fp; { /* Only print stuff if we have some sort of time information. */ -#if defined (HAVE_USER_TIME) || defined (HAVE_SYS_TIME) || defined (HAVE_WALL_TIME) +#if defined HAVE_USER_TIME || defined HAVE_SYS_TIME || defined HAVE_WALL_TIME unsigned int /* timevar_id_t */ id; struct timevar_time_def *total = &timevars[TV_TOTAL].elapsed; struct timevar_time_def now; @@ -480,20 +479,20 @@ timevar_print (fp) const float tiny = 5e-3; /* Don't print the total execution time here; that goes at the - end. */ + end. */ if ((timevar_id_t) id == TV_TOTAL) - continue; + continue; /* Don't print timing variables that were never used. */ if (!tv->used) - continue; + continue; /* Don't print timing variables if we're going to get a row of zeroes. */ if (tv->elapsed.user < tiny - && tv->elapsed.sys < tiny - && tv->elapsed.wall < tiny) - continue; + && tv->elapsed.sys < tiny + && tv->elapsed.wall < tiny) + continue; /* The timing variable name. */ fprintf (fp, " %-22s:", tv->name); @@ -501,22 +500,22 @@ timevar_print (fp) #ifdef HAVE_USER_TIME /* Print user-mode time for this process. */ fprintf (fp, "%7.2f (%2.0f%%) usr", - tv->elapsed.user, - (total->user == 0 ? 0 : tv->elapsed.user / total->user) * 100); + tv->elapsed.user, + (total->user == 0 ? 0 : tv->elapsed.user / total->user) * 100); #endif /* HAVE_USER_TIME */ #ifdef HAVE_SYS_TIME /* Print system-mode time for this process. */ fprintf (fp, "%7.2f (%2.0f%%) sys", - tv->elapsed.sys, - (total->sys == 0 ? 0 : tv->elapsed.sys / total->sys) * 100); + tv->elapsed.sys, + (total->sys == 0 ? 0 : tv->elapsed.sys / total->sys) * 100); #endif /* HAVE_SYS_TIME */ #ifdef HAVE_WALL_TIME /* Print wall clock time elapsed. */ fprintf (fp, "%7.2f (%2.0f%%) wall", - tv->elapsed.wall, - (total->wall == 0 ? 0 : tv->elapsed.wall / total->wall) * 100); + tv->elapsed.wall, + (total->wall == 0 ? 0 : tv->elapsed.wall / total->wall) * 100); #endif /* HAVE_WALL_TIME */ putc ('\n', fp); @@ -535,7 +534,7 @@ timevar_print (fp) #endif #endif /* defined (HAVE_USER_TIME) || defined (HAVE_SYS_TIME) - || defined (HAVE_WALL_TIME) */ + || defined (HAVE_WALL_TIME) */ } /* Returns time (user + system) used so far by the compiler process, @@ -559,8 +558,8 @@ print_time (str, total) { long all_time = get_run_time (); fprintf (stderr, - _("time in %s: %ld.%06ld (%ld%%)\n"), - str, total / 1000000, total % 1000000, - all_time == 0 ? 0 - : (long) (((100.0 * (double) total) / (double) all_time) + .5)); + _("time in %s: %ld.%06ld (%ld%%)\n"), + str, total / 1000000, total % 1000000, + all_time == 0 ? 0 + : (long) (((100.0 * (double) total) / (double) all_time) + .5)); }