Add OALLOC*() to make allocating from obstacks a bit nicer.
[libfirm] / ir / stat / pattern_dmp.c
index e2536ad..ef7136a 100644 (file)
@@ -1,22 +1,34 @@
 /*
- * 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
+ * @version $Id$
+ */
+#include "config.h"
+
+#ifdef FIRM_STATISTICS
 
 #include <stdio.h>
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
+#include <stdlib.h>
 
 #include "ident.h"
 #include "irop_t.h"
@@ -138,7 +150,7 @@ static void vcg_dump_node(pattern_dumper_t *self, unsigned id,
 {
        vcg_private_t *priv = self->data;
        ir_op *op           = stat_get_op_from_opcode(op_code);
-       ir_mode *mode       = (ir_mode *)mode_code;
+       ir_mode *mode       = stat_mode_for_index(mode_code);
        long l              = attr ? *(long *)attr : 0;
 
        if (priv->pattern_id > priv->max_pattern)
@@ -159,6 +171,7 @@ 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;
+       (void) mode_code;
 
        if (priv->pattern_id > priv->max_pattern)
                return;
@@ -214,7 +227,8 @@ static void stdout_dump_node(pattern_dumper_t *self, unsigned id, unsigned op_co
 {
        FILE *f       = self->data;
        ir_op *op     = stat_get_op_from_opcode(op_code);
-       ir_mode *mode = (ir_mode *)mode_code;
+       ir_mode *mode = stat_mode_for_index(mode_code);
+       (void) attr;
 
        /* if (env->options & OPT_ENC_GRAPH) */
        fprintf(f, "%u:", id);
@@ -241,6 +255,10 @@ 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;
+       (void) tgt;
+       (void) src;
+       (void) pos;
+       (void) mode_code;
 
        if (pos > 0)
                fprintf(f, ", ");
@@ -252,6 +270,7 @@ 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;
+       (void) id;
 
        fprintf(f, "(");
 }  /* stdout_start_children */
@@ -262,6 +281,7 @@ 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;
+       (void) id;
 
        fprintf(f, ")");
 }  /* stdout_finish_children */
@@ -405,3 +425,5 @@ pattern_dumper_t *new_vcg_dumper(const char *vcg_name, unsigned max_pattern)
 
        return res;
 }  /* new_vcg_dumper */
+
+#endif /* FIRM_STATISTICS */