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")