sparc: implement omit-fp mode
[libfirm] / ir / be / beschedmris.c
index 3891b53..6239ffe 100644 (file)
 #include "irtools.h"
 #include "irbitset.h"
 #include "irnodeset.h"
-#include "height.h"
+#include "heights.h"
 
 #include "benode.h"
 #include "besched.h"
 #include "beschedmris.h"
 #include "beirg.h"
 
-struct _mris_env_t {
+struct mris_env_t {
        ir_phase          ph;
-       heights_t         *heights;
+       ir_heights_t      *heights;
        ir_graph          *irg;
        ir_node           *bl;
        int               visited;
@@ -64,7 +64,7 @@ struct _mris_env_t {
        DEBUG_ONLY(firm_dbg_module_t *dbg;)
 };
 
-typedef struct _mris_irn_t {
+typedef struct mris_irn_t {
        int visited;
        ir_node *lineage_start;
        ir_node *lineage_next;
@@ -77,9 +77,9 @@ typedef struct _mris_irn_t {
 #define get_mris_irn(env, irn)   ((mris_irn_t *) phase_get_or_set_irn_data(&env->ph, irn))
 #define foreach_lineage(env, pos, tmp) list_for_each_entry_safe(mris_irn_t, pos, tmp, &(env)->lineage_head, lineage_list)
 
-static void *mris_irn_data_init(ir_phase *ph, const ir_node *irn, void *data)
+static void *mris_irn_data_init(ir_phase *ph, const ir_node *irn)
 {
-       mris_irn_t *mi = data ? data : phase_alloc(ph, sizeof(mi[0]));
+       mris_irn_t *mi = phase_alloc(ph, sizeof(mi[0]));
        (void) irn;
        memset(mi, 0, sizeof(mi[0]));
        INIT_LIST_HEAD(&mi->lineage_list);
@@ -224,14 +224,14 @@ static void lineage_formation(mris_env_t *env)
                while (lowest_desc) {
                        mris_irn_t *lowest_mi  = get_mris_irn(env, lowest_desc);
                        mris_irn_t *highest_mi = get_mris_irn(env, highest_node);
-                       int highest_is_tuple   = get_irn_mode(highest_node) == mode_T;
 
                        int n_desc;
 
                        DBG((dbg, LEVEL_2, "\tlowest descendant %+F height %d\n", lowest_desc, get_irn_height(env->heights, lowest_desc)));
 
                        /* count the number of all descendants which are not the lowest descendant */
-                       for (n_desc = 0; in[n_desc]; ++n_desc);
+                       for (n_desc = 0; in[n_desc]; ++n_desc) {
+                       }
 
                        /*
                        we insert a CopyKeep node to express the artificial dependencies from the lowest
@@ -242,12 +242,7 @@ static void lineage_formation(mris_env_t *env)
                                int i, n;
 
                                for (i = 0, n = get_irn_ins_or_deps(lowest_desc); i < n; ++i) {
-                                       ir_node *cmp;
-
-                                       op  = get_irn_in_or_dep(lowest_desc, i);
-                                       cmp = highest_is_tuple ? skip_Projs(op) : op;
-
-                                       // if (cmp == highest_node)
+                                       op = get_irn_in_or_dep(lowest_desc, i);
                                        if (op == highest_node)
                                                break;
                                }
@@ -373,7 +368,7 @@ static void block_walker(ir_node *bl, void *data)
        fuse_lineages(env);
 }
 
-static int mris_edge_hook(FILE *F, ir_node *irn)
+static void mris_edge_hook(FILE *F, ir_node *irn)
 {
        mris_irn_t *mi = get_mris_irn(dump_env, irn);
 
@@ -384,24 +379,21 @@ static int mris_edge_hook(FILE *F, ir_node *irn)
                PRINT_NODEID(irn);
                fprintf(F, "\" color:lilac}\n");
        }
-       return 1;
 }
 
 void dump_ir_block_graph_mris(mris_env_t *env, const char *suffix)
 {
-       DUMP_NODE_EDGE_FUNC old = get_dump_node_edge_hook();
+       dump_node_edge_func old = get_dump_node_edge_hook();
 
-       dump_consts_local(0);
        set_dump_node_edge_hook(mris_edge_hook);
        dump_env = env;
-       dump_ir_block_graph(env->irg, suffix);
+       dump_ir_graph(env->irg, suffix);
        set_dump_node_edge_hook(old);
 }
 
-mris_env_t *be_sched_mris_preprocess(const be_irg_t *birg)
+mris_env_t *be_sched_mris_preprocess(ir_graph *irg)
 {
        mris_env_t *env = XMALLOC(mris_env_t);
-       ir_graph   *irg = be_get_birg_irg(birg);
 
        phase_init(&env->ph, irg, mris_irn_data_init);
        env->irg      = irg;