be: inline arch_env_begin_codegeneration() into its only caller.
[libfirm] / ir / stat / pattern_dmp.c
index bc59452..d03e767 100644 (file)
@@ -1,22 +1,31 @@
 /*
- * Project:     libFIRM
- * File name:   ir/ir/pattern_dmp.c
- * Purpose:     Statistics for Firm.
- * Author:      Michael Beck
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 2004 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+/**
+ * @file
+ * @brief   Statistics for Firm. Dumping patterns.
+ * @author  Michael Beck
+ */
+#include "config.h"
 
 #include <stdio.h>
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
+#include <stdlib.h>
 
 #include "ident.h"
 #include "irop_t.h"
@@ -38,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;
@@ -54,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 */
@@ -65,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"
@@ -82,18 +91,18 @@ 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);
-} /* vcg_dump_end */
+}  /* vcg_dump_end */
 
 /**
  * Starts a new pattern.
  */
 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)
@@ -115,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;
@@ -136,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       = ir_get_mode(mode_code);
        long l              = attr ? *(long *)attr : 0;
 
        if (priv->pattern_id > priv->max_pattern)
@@ -158,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;
@@ -191,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 */
@@ -202,19 +212,20 @@ 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 */
+}  /* stdout_dump_finish_pattern */
 
 /**
  * Dumps a node.
  */
 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 = ir_get_mode(mode_code);
+       (void) attr;
 
        /* if (env->options & OPT_ENC_GRAPH) */
        fprintf(f, "%u:", id);
@@ -230,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 */
@@ -240,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, ", ");
@@ -251,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 */
@@ -261,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 */
@@ -365,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 */
 
@@ -382,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) {