remove unnecessary declaration
[libfirm] / ir / opt / gvn_pre.c
index 11aae21..8e87313 100644 (file)
@@ -42,6 +42,7 @@
 #include "irpass.h"
 #include "valueset.h"
 #include "irloop.h"
+#include "firmstat_t.h"
 
 #include "irgraph_t.h"
 #include "irnode_t.h"
@@ -107,7 +108,7 @@ typedef struct elim_pair {
 /** environment for the GVN-PRE algorithm */
 typedef struct pre_env {
        ir_graph       *graph;        /* current graph */
-       struct obstack *obst;         /* obstack to allocate on */
+       struct obstack  obst;         /* obstack to allocate on */
        ir_node        *start_block;  /* start block of the current graph */
        ir_node        *end_block;    /* end block of the current graph */
        ir_node        *end_node;     /* end node of the current graph */
@@ -152,20 +153,20 @@ typedef struct gvnpre_statistics {
        int infinite_loops;
 } gvnpre_statistics;
 
-gvnpre_statistics *gvnpre_stats = NULL;
+static gvnpre_statistics *gvnpre_stats = NULL;
 
-static void init_stats()
+static void init_stats(void)
 {
        gvnpre_stats = XMALLOCZ(gvnpre_statistics);
 }
 
-static void free_stats()
+static void free_stats(void)
 {
        free(gvnpre_stats);
        gvnpre_stats = NULL;
 }
 
-static void print_stats()
+static void print_stats(void)
 {
        gvnpre_statistics *stats = gvnpre_stats;
        DB((dbg, LEVEL_1, "replaced             : %d\n", stats->replaced));
@@ -213,7 +214,7 @@ static void dump_value_set(ir_valueset_t *set, const char *txt, ir_node *block)
                ++i;
        }
        DB((dbg, LEVEL_2, "\n}\n"));
-}  /* dump_value_set */
+}
 
 /**
  * Dump all exp_gen value sets.
@@ -422,7 +423,7 @@ static ir_node *identify_or_remember(ir_node *irn)
  */
 static void alloc_block_info(ir_node *block, pre_env *env)
 {
-       block_info *info = OALLOC(env->obst, block_info);
+       block_info *info = OALLOC(&env->obst, block_info);
 
        set_irn_link(block, info);
        info->exp_gen    = ir_valueset_new(16);
@@ -439,7 +440,7 @@ static void alloc_block_info(ir_node *block, pre_env *env)
 
        info->next = env->list;
        env->list  = info;
-}  /* alloc_block_info */
+}
 
 static void free_block_info(block_info *block_info)
 {
@@ -1227,7 +1228,7 @@ static void update_new_set(ir_node *block, ir_node *idom)
        if (updated)
                dump_value_set(curr_info->avail_out, "Updated [Avail_out]", block);
 #endif
-} /* update_new_set */
+}
 
 /**
  * Checks if hoisting irn is greedy.
@@ -1791,7 +1792,7 @@ static void eliminate(ir_node *irn, void *ctx)
                        DB((dbg, LEVEL_3, "Elim %+F(%+F) avail %+F\n", irn, value, expr));
 
                        if (expr != NULL && expr != irn) {
-                               elim_pair *p = OALLOC(env->obst, elim_pair);
+                               elim_pair *p = OALLOC(&env->obst, elim_pair);
 
                                p->old_node = irn;
                                p->new_node = expr;
@@ -1805,7 +1806,7 @@ static void eliminate(ir_node *irn, void *ctx)
                        }
                }
        }
-}  /* eliminate */
+}
 
 /**
  * Do all the recorded changes and optimize
@@ -1855,7 +1856,7 @@ static void eliminate_nodes(elim_pair *pairs, ir_nodeset_t *keeps)
        foreach_ir_nodeset(keeps, m_phi, iter) {
                remove_End_keepalive(end, m_phi);
        }
-}  /* eliminate_nodes */
+}
 
 
 /* --------------------------------------------------------
@@ -1947,7 +1948,6 @@ static void gvn_pre(ir_graph *irg, pre_env *env)
  */
 void do_gvn_pre(ir_graph *irg)
 {
-       struct obstack        obst;
        pre_env               env;
        ir_nodeset_t          keeps;
        optimization_state_t  state;
@@ -1977,9 +1977,7 @@ void do_gvn_pre(ir_graph *irg)
        DEBUG_ONLY(init_stats();)
 
        /* setup environment */
-       obstack_init(&obst);
        env.graph        = irg;
-       env.obst         = &obst;
        env.list         = NULL;
        env.start_block  = get_irg_start_block(irg);
        env.end_block    = get_irg_end_block(irg);
@@ -1987,6 +1985,7 @@ void do_gvn_pre(ir_graph *irg)
        env.pairs        = NULL;
        env.keeps        = &keeps;
        env.last_idx     = get_irg_last_idx(irg);
+       obstack_init(&env.obst);
 
        /* Detect and set links of infinite loops to non-zero. */
        analyse_loops(irg);
@@ -2021,7 +2020,7 @@ void do_gvn_pre(ir_graph *irg)
 
        DEBUG_ONLY(free_stats();)
        ir_nodehashmap_destroy(&value_map);
-       obstack_free(&obst, NULL);
+       obstack_free(&env.obst, NULL);
        ir_free_resources(irg, IR_RESOURCE_IRN_LINK | IR_RESOURCE_LOOP_LINK);
 
        /* Pin the graph again.