- removed C99 features
[libfirm] / ir / opt / ldst2.c
index b49925b..d73a8f7 100644 (file)
  * @author  Christoph Mallon
  * @version $Id: $
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "iroptimize.h"
 
-#include "array.h"
+#include "array_t.h"
 #include "debug.h"
 #include "ircons.h"
 #include "irgraph.h"
@@ -43,6 +41,7 @@
 #include "irdump.h"
 #include "irflag_t.h"
 #include "irprintf.h"
+#include "irpass.h"
 
 #if +0
 #define OPTIMISE_LOAD_AFTER_LOAD
@@ -370,7 +369,7 @@ static int WalkMem(ir_graph* irg, ir_node* node, ir_node* last_block)
        if (block != last_block) {
                DB((dbg, LEVEL_3, "===> Changing block from %+F to %+F\n", last_block, block));
                block_change = 1;
-               if (Block_not_block_visited(block)) {
+               if (!Block_block_visited(block)) {
                        mark_Block_block_visited(block);
                } else {
                        DB((dbg, LEVEL_2, "===> Hit already visited block at %+F\n", node));
@@ -410,7 +409,7 @@ static int WalkMem(ir_graph* irg, ir_node* node, ir_node* last_block)
                                ir_node* unknown;
 
                                DB((dbg, LEVEL_3, "===> The predecessor was not finished yet\n"));
-                               assert(!Block_not_block_visited(pred_block));
+                               assert(Block_block_visited(pred_block));
 
                                unknown = new_r_Unknown(irg, mode_M);
                                for (i = 0; i < count_addrs; i++) {
@@ -525,7 +524,7 @@ static void Detotalise(ir_graph* irg)
        size_t npreds = get_Block_n_cfgpreds(end_block);
        size_t i;
 
-       unfinished_phis = xmalloc(sizeof(*unfinished_phis) * count_addrs);
+       unfinished_phis = XMALLOCN(ir_node, count_addrs);
        for (i = 0; i < count_addrs; i++) {
                unfinished_phis[i] = NULL;
        }
@@ -543,6 +542,7 @@ static void Detotalise(ir_graph* irg)
 #endif
 
 
+#if 0
 static void AddSyncPreds(ir_nodeset_t* preds, ir_node* sync)
 {
        size_t n = get_Sync_n_preds(sync);
@@ -558,7 +558,6 @@ static void AddSyncPreds(ir_nodeset_t* preds, ir_node* sync)
        }
 }
 
-#if 0
 static void NormaliseSync(ir_node* node, void* env)
 {
        ir_nodeset_t preds;
@@ -788,7 +787,7 @@ static void walker(ir_node *proj, void *env)
        }
 
        n = ir_nodeset_size(&pi.user_mem);
-       if (n != 0) { /* nothing happend otherwise */
+       if (n != 0) { /* nothing happened otherwise */
                ir_graph               *irg  = current_ir_graph;
                ir_node                *sync;
                ir_node               **in;
@@ -807,11 +806,11 @@ static void walker(ir_node *proj, void *env)
                        in[i++] = p;
                }
                assert(i == n);
-               sync = new_r_Sync(irg, block, n, in);
+               sync = new_r_Sync(block, n, in);
                exchange(proj, sync);
 
                assert(pn_Load_M == pn_Store_M);
-               proj = new_r_Proj(irg, block, mem_op, mode_M, pn_Load_M);
+               proj = new_r_Proj(block, mem_op, mode_M, pn_Load_M);
                set_Sync_pred(sync, 0, proj);
 
                n = ir_nodeset_size(&pi.this_mem);
@@ -828,7 +827,7 @@ static void walker(ir_node *proj, void *env)
                                in[i++] = p;
                        }
                        assert(i == n);
-                       sync = new_r_Sync(irg, block, n, in);
+                       sync = new_r_Sync(block, n, in);
                }
                set_memop_mem(mem_op, sync);
        }
@@ -838,12 +837,17 @@ static void walker(ir_node *proj, void *env)
 }
 
 
-void opt_ldst2(ir_graph *irg)
+void opt_sync(ir_graph *irg)
 {
-       assure_irg_address_taken_computed(irg);
-       assure_irp_globals_address_taken_computed();
+       //assure_irg_entity_usage_computed(irg);
+       //assure_irp_globals_entity_usage_computed();
 
        irg_walk_graph(irg, NULL, walker, NULL);
-  //optimize_graph_df(irg);
+       //optimize_graph_df(irg);
        //irg_walk_graph(irg, NormaliseSync, NULL, NULL);
 }
+
+ir_graph_pass_t *opt_sync_pass(const char *name)
+{
+       return def_graph_pass(name ? name : "opt_sync", opt_sync);
+}