X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbestatevent.c;h=2bf8f12e7470a7afc26d547a26ae72737dc5164e;hb=a1cea00c3c8a93f41d911f740a3855e5b67c4c21;hp=70b43e1de538ec43e03eb6e8abdd1699e612b929;hpb=67ee0da561f2445bf27813dc1cb566edd9eb9c4e;p=libfirm diff --git a/ir/be/bestatevent.c b/ir/be/bestatevent.c index 70b43e1de..2bf8f12e7 100644 --- a/ir/be/bestatevent.c +++ b/ir/be/bestatevent.c @@ -1,8 +1,12 @@ /** -* Statistic events -* @date 3.9.2006 -* @author Sebastian Hack -*/ + * Statistic events + * @date 3.9.2006 + * @author Sebastian Hack + * @cvs-id $Id$ + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include #include @@ -17,7 +21,7 @@ typedef struct { } ev_env_t; static ev_env_t envs[STACK_SIZE]; -static int sp = 0; +static unsigned sp = 0; void be_stat_ev_push(const char **tags, int n_tags, FILE *f) { @@ -38,21 +42,69 @@ void be_stat_ev_push(const char **tags, int n_tags, FILE *f) void be_stat_ev_pop(void) { - if(sp > 0) { - envs[--sp].f = NULL; - } + if (sp == 0) + return; + + envs[--sp].f = NULL; } void be_stat_ev(const char *ev, int value) { - if(sp > 0) { - ev_env_t *env = &envs[sp - 1]; - if(env->f) - fprintf(env->f, "%s%s;%d\n", env->tag, ev, value); - } + ev_env_t *env; + + if (sp == 0) + return; + + env = &envs[sp - 1]; + if (env->f == NULL) + return; + + fprintf(env->f, "%s%s;%d\n", env->tag, ev, value); +} + +void be_stat_ev_l(const char *ev, long value) +{ + ev_env_t *env; + + if (sp == 0) + return; + + env = &envs[sp - 1]; + if (env->f == NULL) + return; + + fprintf(env->f, "%s%s;%ld\n", env->tag, ev, value); +} + +void be_stat_ev_dbl(const char *ev, double value) +{ + ev_env_t *env; + + if (sp == 0) + return; + + env = &envs[sp - 1]; + if (env->f == NULL) + return; + + fprintf(env->f, "%s%s;%f\n", env->tag, ev, value); +} + +void be_stat_ev_ull(const char *ev, ulong64 value) +{ + ev_env_t *env; + + if (sp == 0) + return; + + env = &envs[sp - 1]; + if (env->f == NULL) + return; + + fprintf(env->f, "%s%s;%" ULL_FMT "\n", env->tag, ev, value); } int be_stat_ev_is_active(void) { - return sp > 0 && envs[sp - 1].f; + return sp > 0 && envs[sp - 1].f != NULL; }