X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fstat%2Fpattern_dmp.c;h=caa929069e4958381b0047004827d54b06b2b733;hb=0ba6d24830420634f69caa4c0b947bbdd8955346;hp=d2b42401e9fa96e2e48cfddc4c7aaaf8a14558b0;hpb=2cc9db25f1d7780e24013ef1cc912a3cd770d7a5;p=libfirm diff --git a/ir/stat/pattern_dmp.c b/ir/stat/pattern_dmp.c index d2b42401e..caa929069 100644 --- a/ir/stat/pattern_dmp.c +++ b/ir/stat/pattern_dmp.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -21,16 +21,11 @@ * @file * @brief Statistics for Firm. Dumping patterns. * @author Michael Beck - * @version $Id$ */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include "config.h" #include -#ifdef HAVE_STDLIB_H -# include -#endif +#include #include "ident.h" #include "irop_t.h" @@ -52,7 +47,7 @@ typedef void (*DUMP_END_FUNC)(pattern_dumper_t *self); /** * the pattern dumper */ -struct _pattern_dumper_t { +struct pattern_dumper_t { DUMP_NEW_PATTERN_FUNC dump_new_pattern; DUMP_FINISH_PATTERN_FUNC dump_finish_pattern; DUMP_NODE_FUNC dump_node; @@ -68,7 +63,7 @@ struct _pattern_dumper_t { /** * VCG private data */ -typedef struct _vcg_private_t { +typedef struct vcg_private_t { FILE *f; /**< file to dump to */ unsigned pattern_id; /**< ID of the pattern */ unsigned max_pattern; /**< maximum number of pattern to be dumped */ @@ -79,7 +74,7 @@ typedef struct _vcg_private_t { */ static void vcg_dump_start(pattern_dumper_t *self) { - vcg_private_t *priv = self->data; + vcg_private_t *priv = (vcg_private_t*)self->data; fprintf(priv->f, "graph: { title: \"Most found pattern\"\n" @@ -96,7 +91,7 @@ static void vcg_dump_start(pattern_dumper_t *self) */ static void vcg_dump_end(pattern_dumper_t *self) { - vcg_private_t *priv = self->data; + vcg_private_t *priv = (vcg_private_t*)self->data; fprintf(priv->f, "}\n"); fclose(priv->f); @@ -107,7 +102,7 @@ static void vcg_dump_end(pattern_dumper_t *self) */ static void vcg_dump_new_pattern(pattern_dumper_t *self, counter_t *cnt) { - vcg_private_t *priv = self->data; + vcg_private_t *priv = (vcg_private_t*)self->data; static unsigned nr = 0; if (priv->pattern_id > priv->max_pattern) @@ -129,7 +124,7 @@ static void vcg_dump_new_pattern(pattern_dumper_t *self, counter_t *cnt) */ static void vcg_dump_finish_pattern(pattern_dumper_t *self) { - vcg_private_t *priv = self->data; + vcg_private_t *priv = (vcg_private_t*)self->data; if (priv->pattern_id > priv->max_pattern) return; @@ -150,9 +145,9 @@ static void vcg_dump_finish_pattern(pattern_dumper_t *self) static void vcg_dump_node(pattern_dumper_t *self, unsigned id, unsigned op_code, unsigned mode_code, void *attr) { - vcg_private_t *priv = self->data; + vcg_private_t *priv = (vcg_private_t*)self->data; ir_op *op = stat_get_op_from_opcode(op_code); - ir_mode *mode = (ir_mode *)mode_code; + ir_mode *mode = get_irp_mode(mode_code); long l = attr ? *(long *)attr : 0; if (priv->pattern_id > priv->max_pattern) @@ -172,7 +167,8 @@ static void vcg_dump_node(pattern_dumper_t *self, unsigned id, */ static void vcg_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code) { - vcg_private_t *priv = self->data; + vcg_private_t *priv = (vcg_private_t*)self->data; + (void) mode_code; if (priv->pattern_id > priv->max_pattern) return; @@ -205,7 +201,7 @@ static pattern_dumper_t vcg_dump = { */ static void stdout_dump_new_pattern(pattern_dumper_t *self, counter_t *cnt) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; fprintf(f, "%8u ", cnt_to_uint(cnt)); } /* stdout_dump_new_pattern */ @@ -216,7 +212,7 @@ static void stdout_dump_new_pattern(pattern_dumper_t *self, counter_t *cnt) */ static void stdout_dump_finish_pattern(pattern_dumper_t *self) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; fprintf(f, "\n"); } /* stdout_dump_finish_pattern */ @@ -226,9 +222,10 @@ static void stdout_dump_finish_pattern(pattern_dumper_t *self) */ static void stdout_dump_node(pattern_dumper_t *self, unsigned id, unsigned op_code, unsigned mode_code, void *attr) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; ir_op *op = stat_get_op_from_opcode(op_code); - ir_mode *mode = (ir_mode *)mode_code; + ir_mode *mode = get_irp_mode(mode_code); + (void) attr; /* if (env->options & OPT_ENC_GRAPH) */ fprintf(f, "%u:", id); @@ -244,7 +241,7 @@ static void stdout_dump_node(pattern_dumper_t *self, unsigned id, unsigned op_co */ static void stdout_dump_ref(pattern_dumper_t *self, unsigned id) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; fprintf(f, "REF:%u", id); } /* stdout_dump_ref */ @@ -254,7 +251,11 @@ static void stdout_dump_ref(pattern_dumper_t *self, unsigned id) */ static void stdout_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, unsigned pos, unsigned mode_code) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; + (void) tgt; + (void) src; + (void) pos; + (void) mode_code; if (pos > 0) fprintf(f, ", "); @@ -265,7 +266,8 @@ static void stdout_dump_edge(pattern_dumper_t *self, unsigned tgt, unsigned src, */ static void stdout_start_children(pattern_dumper_t *self, unsigned id) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; + (void) id; fprintf(f, "("); } /* stdout_start_children */ @@ -275,7 +277,8 @@ static void stdout_start_children(pattern_dumper_t *self, unsigned id) */ static void stdout_finish_children(pattern_dumper_t *self, unsigned id) { - FILE *f = self->data; + FILE *f = (FILE*)self->data; + (void) id; fprintf(f, ")"); } /* stdout_finish_children */ @@ -379,15 +382,13 @@ void pattern_end(pattern_dumper_t *self) */ pattern_dumper_t *new_text_dumper(void) { - pattern_dumper_t *res = malloc(sizeof(*res)); + pattern_dumper_t *res = XMALLOC(pattern_dumper_t); - if (res) { - memcpy(res, &stdout_dump, sizeof(*res)); - res->data = stdout; + *res = stdout_dump; + res->data = stdout; - if (res->dump_start) - res->dump_start(res); - } /* if */ + if (res->dump_start) + res->dump_start(res); return res; } /* new_text_dumper */ @@ -396,7 +397,7 @@ pattern_dumper_t *new_text_dumper(void) */ pattern_dumper_t *new_vcg_dumper(const char *vcg_name, unsigned max_pattern) { - pattern_dumper_t *res = malloc(sizeof(*res) + sizeof(vcg_private_t)); + pattern_dumper_t *res = (pattern_dumper_t*)malloc(sizeof(*res) + sizeof(vcg_private_t)); vcg_private_t *priv; if (res) {