X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fstat%2Fstatev.c;h=3d8cc4f1b90a95891f7d86892469776e7af26353;hb=292b89d3367cdeae0cb2a1fca37b6b84e781eab8;hp=b628ad1f9d7fcb2cfec65ddab44a2e86d758f209;hpb=e2dbd3036813b7fb746249213cd84472082d5ab7;p=libfirm diff --git a/ir/stat/statev.c b/ir/stat/statev.c index b628ad1f9..3d8cc4f1b 100644 --- a/ir/stat/statev.c +++ b/ir/stat/statev.c @@ -22,63 +22,37 @@ * @brief Statistic events. * @author Sebastian Hack * @date 17.06.2007 - * @version $Id$ */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include #include #include #include #include +#include #include "util.h" #include "stat_timing.h" #include "irprintf.h" #include "statev.h" -#ifdef HAVE_CONFIG_H #include "config.h" -#endif - -#ifdef HAVE_REGEX_H -#define FIRM_HAVE_REGEX -#endif - -#if defined HAVE_LIBZ && defined HAVE_ZLIB_H -#define FIRM_HAVE_LIBZ -#endif +#ifndef DISABLE_STATEV #define MAX_TIMER 256 -#ifdef FIRM_HAVE_LIBZ -#include - -#define mfprintf gzprintf -static gzFile* stat_ev_file = NULL; - -#else +static FILE* stat_ev_file = NULL; -#define mfprintf fprintf -static FILE* stat_ev_file = NULL; +int stat_ev_enabled = 0; +int stat_ev_timer_sp = 0; +timing_ticks_t stat_ev_timer_elapsed[MAX_TIMER]; +timing_ticks_t stat_ev_timer_start[MAX_TIMER]; -#endif /* FIRM_HAVE_LIBZ */ - -int stat_ev_enabled = 0; -int stat_ev_timer_sp = 0; -timing_ticks_t stat_ev_timer_elapsed[MAX_TIMER]; -timing_ticks_t stat_ev_timer_start[MAX_TIMER]; -timing_sched_env_t stat_ev_sched_rt; -timing_sched_env_t stat_ev_sched_normal; - -#ifdef FIRM_HAVE_REGEX -#include static regex_t regex; static regex_t *filter = NULL; -static INLINE int key_matches(const char *key) +static inline int key_matches(const char *key) { if (!filter) return 1; @@ -86,28 +60,12 @@ static INLINE int key_matches(const char *key) return regexec(filter, key, 0, NULL, 0) == 0; } -#else -static char filter[128] = { '\0' }; -static INLINE int key_matches(const char *key) -{ - int i = 0; - - for (i = 0; filter[i] != '\0'; ++i) { - if (key[i] != filter[i]) - return 0; - } - - return 1; -} -#endif /* FIRM_HAVE_REGEX */ - - void stat_ev_printf(char ev, const char *key, const char *fmt, ...) { - if (ev == 'E' && !key_matches(key)) + if (!key_matches(key)) return; - mfprintf(stat_ev_file, "%c;%s", ev, key); + fprintf(stat_ev_file, "%c;%s", ev, key); if (fmt != NULL) { char buf[256]; va_list args; @@ -115,46 +73,34 @@ void stat_ev_printf(char ev, const char *key, const char *fmt, ...) va_start(args, fmt); ir_vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - mfprintf(stat_ev_file, ";%s", buf); + fprintf(stat_ev_file, ";%s", buf); } - mfprintf(stat_ev_file, "\n"); + fprintf(stat_ev_file, "\n"); } void stat_ev_begin(const char *prefix, const char *filt) { char buf[512]; -#ifdef FIRM_HAVE_LIBZ - snprintf(buf, sizeof(buf), "%s.ev.gz", prefix); - stat_ev_file = gzopen(buf, "wt9"); -#else snprintf(buf, sizeof(buf), "%s.ev", prefix); - stat_ev_file = fopen(buf, "wt"); -#endif + stat_ev_file = fopen(buf, "wt"); if (filt && filt[0] != '\0') { -#ifdef FIRM_HAVE_REGEX filter = NULL; if (regcomp(®ex, filt, REG_EXTENDED) == 0) filter = ®ex; -#else - strncpy(filter, filt, sizeof(filter) - sizeof(filter[0])); -#endif /* FIRM_HAVE_REGEX */ } stat_ev_enabled = stat_ev_file != NULL; - timing_sched_get(&stat_ev_sched_normal); - timing_sched_prepare_max_prio(&stat_ev_sched_rt); } void stat_ev_end(void) { if (stat_ev_file) { -#ifdef FIRM_HAVE_LIBZ - gzflush(stat_ev_file, 1); - gzclose(stat_ev_file); -#else fclose(stat_ev_file); -#endif } + if (filter != NULL) + regfree(filter); } + +#endif