Import of GCC head 2002-10-11

This commit is contained in:
Paul Eggert
2002-10-13 04:42:59 +00:00
parent 98194095fe
commit ea9ed226e0
3 changed files with 67 additions and 50 deletions

View File

@@ -19,24 +19,11 @@ along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */ 02111-1307, USA. */
#if IN_GCC
/* These are the original includes --akim. */
#include "config.h" #include "config.h"
#include "system.h" #include "system.h"
#include "intl.h" #include "intl.h"
#include "rtl.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 #ifdef HAVE_SYS_TIMES_H
# include <sys/times.h> # include <sys/times.h>
#endif #endif
@@ -122,14 +109,12 @@ static float clocks_to_msec;
#define CLOCKS_TO_MSEC (1 / (float)CLOCKS_PER_SEC) #define CLOCKS_TO_MSEC (1 / (float)CLOCKS_PER_SEC)
#endif #endif
#if IN_GCC
#include "flags.h" #include "flags.h"
#endif
#include "timevar.h" #include "timevar.h"
/* See timevar.h for an explanation of timing variables. */ /* 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) #define TIMEVAR_ENABLE (time_report)
/* A timing variable. */ /* A timing variable. */
@@ -191,7 +176,7 @@ static void timevar_accumulate
/* Fill the current times into TIME. The definition of this function /* 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 also defines any or all of the HAVE_USER_TIME, HAVE_SYS_TIME, and
HAVA_WALL_TIME macros. */ HAVE_WALL_TIME macros. */
static void static void
get_time (now) get_time (now)
@@ -207,18 +192,15 @@ get_time (now)
{ {
#ifdef USE_TIMES #ifdef USE_TIMES
struct tms tms; struct tms tms;
now->wall = times (&tms) * ticks_to_msec; now->wall = times (&tms) * ticks_to_msec;
now->user = (tms.tms_utime + tms.tms_cutime) * ticks_to_msec; now->user = tms.tms_utime * ticks_to_msec;
now->sys = (tms.tms_stime + tms.tms_cstime) * ticks_to_msec; now->sys = tms.tms_stime * ticks_to_msec;
#endif #endif
#ifdef USE_GETRUSAGE #ifdef USE_GETRUSAGE
struct rusage rusage; struct rusage rusage;
getrusage (RUSAGE_SELF, &rusage); getrusage (RUSAGE_SELF, &rusage);
now->user = rusage.ru_utime.tv_sec + rusage.ru_utime.tv_usec * 1e-6; 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; 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 #endif
#ifdef USE_CLOCK #ifdef USE_CLOCK
now->user = clock () * clocks_to_msec; now->user = clock () * clocks_to_msec;
@@ -230,9 +212,9 @@ get_time (now)
static void static void
timevar_accumulate (timer, start_time, stop_time) timevar_accumulate (timer, start_time, stop_time)
struct timevar_time_def *timer; struct timevar_time_def *timer;
struct timevar_time_def *start_time; struct timevar_time_def *start_time;
struct timevar_time_def *stop_time; struct timevar_time_def *stop_time;
{ {
timer->user += stop_time->user - start_time->user; timer->user += stop_time->user - start_time->user;
timer->sys += stop_time->sys - start_time->sys; timer->sys += stop_time->sys - start_time->sys;
@@ -551,6 +533,6 @@ print_time (str, total)
fprintf (stderr, fprintf (stderr,
_("time in %s: %ld.%06ld (%ld%%)\n"), _("time in %s: %ld.%06ld (%ld%%)\n"),
str, total / 1000000, total % 1000000, str, total / 1000000, total % 1000000,
all_time == 0 ? 0 all_time == 0 ? 0
: (long) (((100.0 * (double) total) / (double) all_time) + .5)); : (long) (((100.0 * (double) total) / (double) all_time) + .5));
} }

View File

@@ -1,4 +1,4 @@
/* 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. measure run-time performance of the compiler.
Copyright (C) 2000 Free Software Foundation, Inc. Copyright (C) 2000 Free Software Foundation, Inc.
Contributed by Alex Samuel <samuel@codesourcery.com> Contributed by Alex Samuel <samuel@codesourcery.com>
@@ -33,24 +33,59 @@
/* The total execution time. */ /* The total execution time. */
DEFTIMEVAR (TV_TOTAL , "total time") DEFTIMEVAR (TV_TOTAL , "total time")
/* Time spent in the reader. */ /* Time spent garbage-collecting. */
DEFTIMEVAR (TV_READER , "reader") DEFTIMEVAR (TV_GC , "garbage collection")
DEFTIMEVAR (TV_SCANNING , "scanner")
DEFTIMEVAR (TV_PARSING , "parser")
/* Time spent handling the grammar. */ /* Time spent generating dump files. */
DEFTIMEVAR (TV_REDUCE , "reducing the grammar") DEFTIMEVAR (TV_DUMP , "dump files")
DEFTIMEVAR (TV_SETS , "computing the sets")
DEFTIMEVAR (TV_LR0 , "LR(0)")
DEFTIMEVAR (TV_LALR , "LALR(1)")
DEFTIMEVAR (TV_CONFLICTS , "conflicts")
/* Time spent outputing results. */ /* Time spent by constructing CFG. */
DEFTIMEVAR (TV_REPORT , "outputing report") DEFTIMEVAR (TV_CFG , "cfg construction")
DEFTIMEVAR (TV_GRAPH , "outputing graph") /* Time spent by cleaning up CFG. */
DEFTIMEVAR (TV_ACTIONS , "parser action tables") DEFTIMEVAR (TV_CLEANUP_CFG , "cfg cleanup")
DEFTIMEVAR (TV_PARSER , "outputing parser") DEFTIMEVAR (TV_DELETE_TRIVIALLY_DEAD , "trivially dead code")
DEFTIMEVAR (TV_M4 , "running m4") /* 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")
/* Time spent by freeing the memory :). */ /* Everything else in rest_of_compilation not included above. */
DEFTIMEVAR (TV_FREE , "freeing") DEFTIMEVAR (TV_REST_OF_COMPILATION , "rest of compilation")

View File

@@ -41,9 +41,9 @@
- As a standalone timer, using timevar_start and timevar_stop. - As a standalone timer, using timevar_start and timevar_stop.
All time elapsed between the two calls is attributed to the All time elapsed between the two calls is attributed to the
variable. variable.
*/ */
/* This structure stores the various varieties of time that can be /* This structure stores the various varieties of time that can be
measured. Times are stored in seconds. The time may be an measured. Times are stored in seconds. The time may be an
absolute time or a time difference; in the former case, the time absolute time or a time difference; in the former case, the time
@@ -67,7 +67,7 @@ struct timevar_time_def
the contents of timevar.def. */ the contents of timevar.def. */
#define DEFTIMEVAR(identifier__, name__) \ #define DEFTIMEVAR(identifier__, name__) \
identifier__, identifier__,
typedef enum typedef enum
{ {
#include "timevar.def" #include "timevar.def"