Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
-#if IN_GCC
-
-/* These are the original includes --akim. */
#include "config.h"
#include "system.h"
#include "intl.h"
#include "rtl.h"
-#else
-
-/* These are my replacements by hand --akim.
- There is another change below, flag with IN_GCC. */
-# include "../src/system.h"
-int time_report = 0;
-
-#endif
-
-
#ifdef HAVE_SYS_TIMES_H
# include <sys/times.h>
#endif
#define CLOCKS_TO_MSEC (1 / (float)CLOCKS_PER_SEC)
#endif
-#if IN_GCC
#include "flags.h"
-#endif
#include "timevar.h"
/* See timevar.h for an explanation of timing variables. */
-/* This macro evaluates to non-zero if timing variables are enabled. */
+/* This macro evaluates to nonzero if timing variables are enabled. */
#define TIMEVAR_ENABLE (time_report)
/* A timing variable. */
/* 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
- HAVA_WALL_TIME macros. */
+ HAVE_WALL_TIME macros. */
static void
get_time (now)
{
#ifdef USE_TIMES
struct tms tms;
- now->wall = times (&tms) * ticks_to_msec;
- now->user = (tms.tms_utime + tms.tms_cutime) * ticks_to_msec;
- now->sys = (tms.tms_stime + tms.tms_cstime) * ticks_to_msec;
+ now->wall = times (&tms) * ticks_to_msec;
+ now->user = tms.tms_utime * ticks_to_msec;
+ now->sys = tms.tms_stime * ticks_to_msec;
#endif
#ifdef USE_GETRUSAGE
struct rusage rusage;
getrusage (RUSAGE_SELF, &rusage);
now->user = rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec * 1e-6;
now->sys = rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec * 1e-6;
- getrusage (RUSAGE_CHILDREN, &rusage);
- now->user += rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec * 1e-6;
- now->sys += rusage.ru_stime.tv_sec + rusage.ru_stime.tv_usec * 1e-6;
#endif
#ifdef USE_CLOCK
now->user = clock () * clocks_to_msec;
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;
+ 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;
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));
+ all_time == 0 ? 0
+ : (long) (((100.0 * (double) total) / (double) all_time) + .5));
}
-/* This file contains the definitions for timing variables used to -*- C -*-
+/* This file contains the definitions for timing variables used to
measure run-time performance of the compiler.
Copyright (C) 2000 Free Software Foundation, Inc.
Contributed by Alex Samuel <samuel@codesourcery.com>
/* The total execution time. */
DEFTIMEVAR (TV_TOTAL , "total time")
-/* Time spent in the reader. */
-DEFTIMEVAR (TV_READER , "reader")
-DEFTIMEVAR (TV_SCANNING , "scanner")
-DEFTIMEVAR (TV_PARSING , "parser")
-
-/* Time spent handling the grammar. */
-DEFTIMEVAR (TV_REDUCE , "reducing the grammar")
-DEFTIMEVAR (TV_SETS , "computing the sets")
-DEFTIMEVAR (TV_LR0 , "LR(0)")
-DEFTIMEVAR (TV_LALR , "LALR(1)")
-DEFTIMEVAR (TV_CONFLICTS , "conflicts")
-
-/* Time spent outputing results. */
-DEFTIMEVAR (TV_REPORT , "outputing report")
-DEFTIMEVAR (TV_GRAPH , "outputing graph")
-DEFTIMEVAR (TV_ACTIONS , "parser action tables")
-DEFTIMEVAR (TV_PARSER , "outputing parser")
-DEFTIMEVAR (TV_M4 , "running m4")
-
-/* Time spent by freeing the memory :). */
-DEFTIMEVAR (TV_FREE , "freeing")
+/* Time spent garbage-collecting. */
+DEFTIMEVAR (TV_GC , "garbage collection")
+
+/* Time spent generating dump files. */
+DEFTIMEVAR (TV_DUMP , "dump files")
+
+/* Time spent by constructing CFG. */
+DEFTIMEVAR (TV_CFG , "cfg construction")
+/* Time spent by cleaning up CFG. */
+DEFTIMEVAR (TV_CLEANUP_CFG , "cfg cleanup")
+DEFTIMEVAR (TV_DELETE_TRIVIALLY_DEAD , "trivially dead code")
+/* Time spent by life analysis. */
+DEFTIMEVAR (TV_LIFE , "life analysis")
+DEFTIMEVAR (TV_LIFE_UPDATE , "life info update")
+/* Timing in various stages of the compiler. */
+DEFTIMEVAR (TV_CPP , "preprocessing")
+DEFTIMEVAR (TV_LEX , "lexical analysis")
+DEFTIMEVAR (TV_PARSE , "parser")
+DEFTIMEVAR (TV_EXPAND , "expand")
+DEFTIMEVAR (TV_VARCONST , "varconst")
+DEFTIMEVAR (TV_INTEGRATION , "integration")
+DEFTIMEVAR (TV_JUMP , "jump")
+DEFTIMEVAR (TV_CSE , "CSE")
+DEFTIMEVAR (TV_GCSE , "global CSE")
+DEFTIMEVAR (TV_LOOP , "loop analysis")
+DEFTIMEVAR (TV_TRACER , "tracer")
+DEFTIMEVAR (TV_CSE2 , "CSE 2")
+DEFTIMEVAR (TV_BRANCH_PROB , "branch prediction")
+DEFTIMEVAR (TV_FLOW , "flow analysis")
+DEFTIMEVAR (TV_COMBINE , "combiner")
+DEFTIMEVAR (TV_IFCVT , "if-conversion")
+DEFTIMEVAR (TV_REGMOVE , "regmove")
+DEFTIMEVAR (TV_MODE_SWITCH , "mode switching")
+DEFTIMEVAR (TV_SCHED , "scheduling")
+DEFTIMEVAR (TV_LOCAL_ALLOC , "local alloc")
+DEFTIMEVAR (TV_GLOBAL_ALLOC , "global alloc")
+DEFTIMEVAR (TV_RELOAD_CSE_REGS , "reload CSE regs")
+DEFTIMEVAR (TV_FLOW2 , "flow 2")
+DEFTIMEVAR (TV_IFCVT2 , "if-conversion 2")
+DEFTIMEVAR (TV_PEEPHOLE2 , "peephole 2")
+DEFTIMEVAR (TV_RENAME_REGISTERS , "rename registers")
+DEFTIMEVAR (TV_SCHED2 , "scheduling 2")
+DEFTIMEVAR (TV_MACH_DEP , "machine dep reorg")
+DEFTIMEVAR (TV_DBR_SCHED , "delay branch sched")
+DEFTIMEVAR (TV_REORDER_BLOCKS , "reorder blocks")
+DEFTIMEVAR (TV_SHORTEN_BRANCH , "shorten branches")
+DEFTIMEVAR (TV_REG_STACK , "reg stack")
+DEFTIMEVAR (TV_TO_SSA , "convert to SSA")
+DEFTIMEVAR (TV_SSA_CCP , "SSA CCP")
+DEFTIMEVAR (TV_SSA_DCE , "SSA aggressive DCE")
+DEFTIMEVAR (TV_FROM_SSA , "convert from SSA")
+DEFTIMEVAR (TV_FINAL , "final")
+DEFTIMEVAR (TV_SYMOUT , "symout")
+
+/* Everything else in rest_of_compilation not included above. */
+DEFTIMEVAR (TV_REST_OF_COMPILATION , "rest of compilation")