summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/timevar.c
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2004-07-28 03:11:36 +0000
committerkan <kan@FreeBSD.org>2004-07-28 03:11:36 +0000
commit5e00ec74d8ce58f99801200d4d3d0412c7cc1b28 (patch)
tree052f4bb635f2bea2c5e350bd60c902be100a0d1e /contrib/gcc/timevar.c
parent87b8398a7d9f9bf0e28bbcd54a4fc27db2125f38 (diff)
downloadFreeBSD-src-5e00ec74d8ce58f99801200d4d3d0412c7cc1b28.zip
FreeBSD-src-5e00ec74d8ce58f99801200d4d3d0412c7cc1b28.tar.gz
Gcc 3.4.2 20040728.
Diffstat (limited to 'contrib/gcc/timevar.c')
-rw-r--r--contrib/gcc/timevar.c124
1 files changed, 49 insertions, 75 deletions
diff --git a/contrib/gcc/timevar.c b/contrib/gcc/timevar.c
index 47f2a68..9746488 100644
--- a/contrib/gcc/timevar.c
+++ b/contrib/gcc/timevar.c
@@ -1,5 +1,5 @@
/* Timing variables for measuring compiler performance.
- Copyright (C) 2000 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2003 Free Software Foundation, Inc.
Contributed by Alex Samuel <samuel@codesourcery.com>
This file is part of GCC.
@@ -21,15 +21,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "config.h"
#include "system.h"
-#include "intl.h"
-#include "rtl.h"
-
#ifdef HAVE_SYS_TIMES_H
# include <sys/times.h>
#endif
#ifdef HAVE_SYS_RESOURCE_H
#include <sys/resource.h>
#endif
+#include "coretypes.h"
+#include "tm.h"
+#include "intl.h"
+#include "rtl.h"
+#include "toplev.h"
#ifndef HAVE_CLOCK_T
typedef int clock_t;
@@ -45,16 +47,6 @@ struct tms
};
#endif
-#if defined HAVE_DECL_GETRUSAGE && !HAVE_DECL_GETRUSAGE
-extern int getrusage PARAMS ((int, struct rusage *));
-#endif
-#if defined HAVE_DECL_TIMES && !HAVE_DECL_TIMES
-extern clock_t times PARAMS ((struct tms *));
-#endif
-#if defined HAVE_DECL_CLOCK && !HAVE_DECL_CLOCK
-extern clock_t clock PARAMS ((void));
-#endif
-
#ifndef RUSAGE_SELF
# define RUSAGE_SELF 0
#endif
@@ -78,17 +70,26 @@ extern clock_t clock PARAMS ((void));
/* Prefer times to getrusage to clock (each gives successively less
information). */
#ifdef HAVE_TIMES
+# if defined HAVE_DECL_TIMES && !HAVE_DECL_TIMES
+ extern clock_t times (struct tms *);
+# endif
# define USE_TIMES
# define HAVE_USER_TIME
# define HAVE_SYS_TIME
# define HAVE_WALL_TIME
#else
#ifdef HAVE_GETRUSAGE
+# if defined HAVE_DECL_GETRUSAGE && !HAVE_DECL_GETRUSAGE
+ extern int getrusage (int, struct rusage *);
+# endif
# define USE_GETRUSAGE
# define HAVE_USER_TIME
# define HAVE_SYS_TIME
#else
#ifdef HAVE_CLOCK
+# if defined HAVE_DECL_CLOCK && !HAVE_DECL_CLOCK
+ extern clock_t clock (void);
+# endif
# define USE_CLOCK
# define HAVE_USER_TIME
#endif
@@ -100,23 +101,21 @@ extern clock_t clock PARAMS ((void));
precompute them. Whose wonderful idea was it to make all those
_constants_ variable at run time, anyway? */
#ifdef USE_TIMES
-static float ticks_to_msec;
-#define TICKS_TO_MSEC (1 / (float)TICKS_PER_SECOND)
+static double ticks_to_msec;
+#define TICKS_TO_MSEC (1 / (double)TICKS_PER_SECOND)
#endif
#ifdef USE_CLOCK
-static float clocks_to_msec;
-#define CLOCKS_TO_MSEC (1 / (float)CLOCKS_PER_SEC)
+static double clocks_to_msec;
+#define CLOCKS_TO_MSEC (1 / (double)CLOCKS_PER_SEC)
#endif
#include "flags.h"
#include "timevar.h"
-#include "toplev.h"
-/* See timevar.h for an explanation of timing variables. */
+static bool timevar_enable;
-/* This macro evaluates to nonzero if timing variables are enabled. */
-#define TIMEVAR_ENABLE (time_report)
+/* See timevar.h for an explanation of timing variables. */
/* A timing variable. */
@@ -132,11 +131,11 @@ struct timevar_def
/* The name of this timing variable. */
const char *name;
- /* Non-zero if this timing variable is running as a standalone
+ /* Nonzero if this timing variable is running as a standalone
timer. */
unsigned standalone : 1;
- /* Non-zero if this timing variable was ever started or pushed onto
+ /* Nonzero if this timing variable was ever started or pushed onto
the timing stack. */
unsigned used : 1;
};
@@ -169,25 +168,23 @@ 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
HAVE_WALL_TIME macros. */
static void
-get_time (now)
- struct timevar_time_def *now;
+get_time (struct timevar_time_def *now)
{
now->user = 0;
now->sys = 0;
now->wall = 0;
- if (!TIMEVAR_ENABLE)
+ if (!timevar_enable)
return;
{
@@ -212,10 +209,9 @@ get_time (now)
/* Add the difference between STOP_TIME and START_TIME to TIMER. */
static void
-timevar_accumulate (timer, start_time, stop_time)
- struct timevar_time_def *timer;
- struct timevar_time_def *start_time;
- struct timevar_time_def *stop_time;
+timevar_accumulate (struct timevar_time_def *timer,
+ struct timevar_time_def *start_time,
+ struct timevar_time_def *stop_time)
{
timer->user += stop_time->user - start_time->user;
timer->sys += stop_time->sys - start_time->sys;
@@ -225,13 +221,12 @@ timevar_accumulate (timer, start_time, stop_time)
/* Initialize timing variables. */
void
-init_timevar ()
+timevar_init (void)
{
- if (!TIMEVAR_ENABLE)
- return;
+ timevar_enable = true;
/* Zero all elapsed times. */
- memset ((void *) timevars, 0, sizeof (timevars));
+ memset (timevars, 0, sizeof (timevars));
/* Initialize the names of timing variables. */
#define DEFTIMEVAR(identifier__, name__) \
@@ -255,14 +250,13 @@ init_timevar ()
TIMEVAR cannot be running as a standalone timer. */
void
-timevar_push (timevar)
- timevar_id_t timevar;
+timevar_push (timevar_id_t timevar)
{
struct timevar_def *tv = &timevars[timevar];
struct timevar_stack_def *context;
struct timevar_time_def now;
- if (!TIMEVAR_ENABLE)
+ if (!timevar_enable)
return;
/* Mark this timing variable as used. */
@@ -292,8 +286,7 @@ timevar_push (timevar)
unused_stack_instances = unused_stack_instances->next;
}
else
- context = (struct timevar_stack_def *)
- xmalloc (sizeof (struct timevar_stack_def));
+ context = xmalloc (sizeof (struct timevar_stack_def));
/* Fill it in and put it on the stack. */
context->timevar = tv;
@@ -308,13 +301,12 @@ timevar_push (timevar)
timing variable. */
void
-timevar_pop (timevar)
- timevar_id_t timevar;
+timevar_pop (timevar_id_t timevar)
{
struct timevar_time_def now;
struct timevar_stack_def *popped = stack;
- if (!TIMEVAR_ENABLE)
+ if (!timevar_enable)
return;
if (&timevars[timevar] != stack->timevar)
@@ -348,12 +340,11 @@ timevar_pop (timevar)
attributed to TIMEVAR. */
void
-timevar_start (timevar)
- timevar_id_t timevar;
+timevar_start (timevar_id_t timevar)
{
struct timevar_def *tv = &timevars[timevar];
- if (!TIMEVAR_ENABLE)
+ if (!timevar_enable)
return;
/* Mark this timing variable as used. */
@@ -372,13 +363,12 @@ timevar_start (timevar)
is attributed to it. */
void
-timevar_stop (timevar)
- timevar_id_t timevar;
+timevar_stop (timevar_id_t timevar)
{
struct timevar_def *tv = &timevars[timevar];
struct timevar_time_def now;
- if (!TIMEVAR_ENABLE)
+ if (!timevar_enable)
return;
/* TIMEVAR must have been started via timevar_start. */
@@ -393,9 +383,7 @@ timevar_stop (timevar)
update-to-date information even if TIMEVAR is currently running. */
void
-timevar_get (timevar, elapsed)
- timevar_id_t timevar;
- struct timevar_time_def *elapsed;
+timevar_get (timevar_id_t timevar, struct timevar_time_def *elapsed)
{
struct timevar_def *tv = &timevars[timevar];
struct timevar_time_def now;
@@ -421,8 +409,7 @@ timevar_get (timevar, elapsed)
for normalizing the others, and is displayed last. */
void
-timevar_print (fp)
- FILE *fp;
+timevar_print (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)
@@ -430,7 +417,7 @@ timevar_print (fp)
struct timevar_time_def *total = &timevars[TV_TOTAL].elapsed;
struct timevar_time_def now;
- if (!TIMEVAR_ENABLE)
+ if (!timevar_enable)
return;
/* Update timing information in case we're calling this from GDB. */
@@ -454,7 +441,7 @@ timevar_print (fp)
for (id = 0; id < (unsigned int) TIMEVAR_LAST; ++id)
{
struct timevar_def *tv = &timevars[(timevar_id_t) id];
- const float tiny = 5e-3;
+ const double tiny = 5e-3;
/* Don't print the total execution time here; that goes at the
end. */
@@ -515,24 +502,11 @@ timevar_print (fp)
|| defined (HAVE_WALL_TIME) */
}
-/* Returns time (user + system) used so far by the compiler process,
- in microseconds. */
-
-long
-get_run_time ()
-{
- struct timevar_time_def total_elapsed;
- timevar_get (TV_TOTAL, &total_elapsed);
- return total_elapsed.user + total_elapsed.sys;
-}
-
/* Prints a message to stderr stating that time elapsed in STR is
TOTAL (given in microseconds). */
void
-print_time (str, total)
- const char *str;
- long total;
+print_time (const char *str, long total)
{
long all_time = get_run_time ();
fprintf (stderr,
OpenPOWER on IntegriCloud