made code C89 compliant (changed unnamed union in attributes)
[libfirm] / ir / be / beirgmod.c
index fc3462a..77ca783 100644 (file)
@@ -4,10 +4,11 @@
 
 #include <stdlib.h>
 
-#ifdef WIN32
-#include <malloc.h>
-#else
-#include <alloca.h>
+#ifdef HAVE_MALLOC_H
+ #include <malloc.h>
+#endif
+#ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
 #endif
 
 #include "hashptr.h"
@@ -35,7 +36,7 @@
 
 #include "beirgmod.h"
 
-#define DBG_MODULE firm_dbg_register("firm.be.irgmod")
+#define DBG_MODULE "firm.be.irgmod"
 #define DBG_LEVEL SET_LEVEL_0
 
 /*
@@ -108,7 +109,7 @@ static void compute_df(ir_node *n, pmap *df_map)
 
 dom_front_info_t *be_compute_dominance_frontiers(ir_graph *irg)
 {
-  dom_front_info_t *info = malloc(sizeof(*info));
+  dom_front_info_t *info = xmalloc(sizeof(*info));
 
   edges_assure(irg);
   info->df_map = pmap_create();
@@ -138,7 +139,7 @@ static void determine_phi_blocks(pset *copies, pset* copy_blocks, pset *phi_bloc
 {
        ir_node *bl;
        pdeq *worklist = new_pdeq();
-       firm_dbg_module_t *dbg = DBG_MODULE;
+       FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, DBG_MODULE);
 
        /*
        * Fill the worklist queue and the rest of the orig blocks array.
@@ -216,7 +217,7 @@ static ir_node *search_def(ir_node *usage, int pos, pset *copies, pset *copy_blo
 {
        ir_node *curr_bl;
        ir_node *start_irn;
-       firm_dbg_module_t *dbg = DBG_MODULE;
+       FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, DBG_MODULE);
 
        curr_bl = get_nodes_block(usage);
 
@@ -263,7 +264,7 @@ static ir_node *search_def(ir_node *usage, int pos, pset *copies, pset *copy_blo
                                ir_node **ins = xmalloc(n_preds * sizeof(ins[0]));
 
                                for(i = 0; i < n_preds; ++i)
-                                       ins[i] = new_r_Unknown(irg, mode);
+                                       ins[i] = new_r_Bad(irg);
 
                                phi = new_r_Phi(irg, curr_bl, n_preds, ins, mode);
                                DBG((dbg, LEVEL_2, "\tcreating phi %+F in %+F\n", phi, curr_bl));
@@ -296,8 +297,8 @@ static ir_node *search_def(ir_node *usage, int pos, pset *copies, pset *copy_blo
 
 static void fix_usages(pset *copies, pset *copy_blocks, pset *phi_blocks, pset *phis, pset *ignore_uses)
 {
-       firm_dbg_module_t *dbg = DBG_MODULE;
-       int n_outs             = 0;
+       int n_outs = 0;
+       FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, DBG_MODULE);
 
        struct obstack obst;
        ir_node *irn;
@@ -412,7 +413,7 @@ void be_ssa_constr_set_phis_ignore(dom_front_info_t *df, pset *nodes, pset *phis
        pset *phi_blocks       = pset_new_ptr(n);
        int save_optimize      = get_optimize();
        int save_normalize     = get_opt_normalize();
-       firm_dbg_module_t *dbg = DBG_MODULE;
+       FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, DBG_MODULE);
 
        ir_node *irn;
 
@@ -485,7 +486,7 @@ ir_node *insert_Perm_after(const arch_env_t *arch_env,
        ir_node *bl                 = is_Block(pos) ? pos : get_nodes_block(pos);
        ir_graph *irg               = get_irn_irg(bl);
        pset *live                  = pset_new_ptr_default();
-       firm_dbg_module_t *dbg      = firm_dbg_register("be.node");
+       FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, "be.node");
 
        ir_node *curr, *irn, *perm, **nodes;
        int i, n;
@@ -496,16 +497,19 @@ ir_node *insert_Perm_after(const arch_env_t *arch_env,
 
        n = pset_count(live);
 
-       if(n == 0)
+       if(n == 0) {
+               del_pset(live);
                return NULL;
+       }
 
-       nodes = malloc(n * sizeof(nodes[0]));
+       nodes = xmalloc(n * sizeof(nodes[0]));
 
        DBG((dbg, LEVEL_1, "live:\n"));
        for(irn = pset_first(live), i = 0; irn; irn = pset_next(live), i++) {
                DBG((dbg, LEVEL_1, "\t%+F\n", irn));
                nodes[i] = irn;
        }
+       del_pset(live);
 
        perm = be_new_Perm(cls, irg, bl, n, nodes);
        sched_add_after(pos, perm);