X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftimevar.h;h=e776dbf07f50d7897872343adfeb608106183e52;hb=485e90919e0fb95cd148aa1dc43000aeb68abc2e;hp=e8366004c018f58fb5689bef8f69f64671f2a321;hpb=2bf28907b954cc21318d3952580b19603f476c14;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/timevar.h b/gcc/timevar.h index e8366004c01..e776dbf07f5 100644 --- a/gcc/timevar.h +++ b/gcc/timevar.h @@ -1,12 +1,13 @@ /* Timing variables for measuring compiler performance. - Copyright (C) 2000, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2003, 2004, 2005, 2007, 2009 + Free Software Foundation, Inc. Contributed by Alex Samuel This file is part of GCC. GCC 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) + the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT @@ -15,9 +16,8 @@ License for more details. You should have received a copy of the GNU General Public License - along with GCC; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + along with GCC; see the file COPYING3. If not see + . */ #ifndef GCC_TIMEVAR_H #define GCC_TIMEVAR_H @@ -61,6 +61,9 @@ struct timevar_time_def /* Wall clock time. */ double wall; + + /* Garbage collector memory. */ + unsigned ggc_mem; }; /* An enumeration of timing variable identifiers. Constructed from @@ -70,16 +73,22 @@ struct timevar_time_def identifier__, typedef enum { + TV_NONE, #include "timevar.def" TIMEVAR_LAST } timevar_id_t; #undef DEFTIMEVAR +/* True if timevars should be used. In GCC, this happens with + the -ftime-report flag. */ +extern bool timevar_enable; + +/* Total amount of memory allocated by garbage collector. */ +extern size_t timevar_ggc_mem_total; + /* Execute the sequence: timevar_pop (TV), return (E); */ #define POP_TIMEVAR_AND_RETURN(TV, E) do { timevar_pop (TV); return (E); }while(0) -#define timevar_pop(TV) do { if (timevar_enable) timevar_pop_1 (TV); }while(0) -#define timevar_push(TV) do { if (timevar_enable) timevar_push_1 (TV); }while(0) extern void timevar_init (void); extern void timevar_push_1 (timevar_id_t); @@ -89,8 +98,20 @@ extern void timevar_stop (timevar_id_t); extern void timevar_print (FILE *); /* Provided for backward compatibility. */ -extern void print_time (const char *, long); +static inline void +timevar_push (timevar_id_t tv) +{ + if (timevar_enable) + timevar_push_1 (tv); +} -extern bool timevar_enable; +static inline void +timevar_pop (timevar_id_t tv) +{ + if (timevar_enable) + timevar_pop_1 (tv); +} + +extern void print_time (const char *, long); #endif /* ! GCC_TIMEVAR_H */