rewritten be_ssa_constr which isn't using sets anymore, started working on a 'state...
[libfirm] / ir / be / mips / mips_scheduler.c
index fdbb59e..154d266 100644 (file)
@@ -1,8 +1,7 @@
 /* Mips implementation of list scheduler selector */
 /* $Id$ */
-
 #ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
 #endif
 
 #ifdef HAVE_STDLIB_H
@@ -36,6 +35,9 @@ typedef struct {
        ir_node* last_nop;
 } mips_sched_env_t;
 
+/* Matze: deprecated and totally broken */
+#if 0
+
 static void *mips_scheduler_init_graph(const list_sched_selector_t *vtab, const arch_env_t *arch_env, ir_graph *irg)
 {
        mips_sched_env_t *sched_env = xmalloc(sizeof(sched_env[0]));
@@ -117,7 +119,7 @@ static int mips_scheduler_node_allowed(mips_sched_env_t *sched_env, ir_node* nod
        return 1;
 }
 
-static ir_node *mips_scheduler_select(void *block_env, nodeset *ready_set)
+static ir_node *mips_scheduler_select(void *block_env, nodeset *ready_set, nodeset *live_set)
 {
        mips_sched_env_t *sched_env = (mips_sched_env_t*) block_env;
        const arch_env_t *arch_env = (const arch_env_t*) sched_env->arch_env;
@@ -130,7 +132,7 @@ static ir_node *mips_scheduler_select(void *block_env, nodeset *ready_set)
        // test all nodes in the ready set and take the first non-branch that
        // is allowed
        for (node = nodeset_first(ready_set); node != NULL; node = nodeset_next(ready_set)) {
-               if (arch_irn_classify(arch_env, node) == arch_irn_class_branch) {
+               if (arch_irn_class_is(arch_env, node, branch)) {
                        if (is_irn_forking(node))
                                condjmp = node;
                        continue;
@@ -163,7 +165,7 @@ static ir_node *mips_scheduler_select(void *block_env, nodeset *ready_set)
                        return condjmp;
                }
                node = nodeset_first(ready_set);
-               assert(arch_irn_classify(arch_env, node) == arch_irn_class_branch);
+               assert(arch_irn_class_is(arch_env, node, branch));
                nodeset_break(ready_set);
                return node;
        }
@@ -174,11 +176,14 @@ static ir_node *mips_scheduler_select(void *block_env, nodeset *ready_set)
        return node;
 }
 
+#endif
+
 /**
  * Returns the reg_pressure scheduler with to_appear_in_schedule() overloaded
  */
-const list_sched_selector_t *mips_get_list_sched_selector(const void *self)
+const list_sched_selector_t *mips_get_list_sched_selector(const void *self, list_sched_selector_t *selector)
 {
+#if 0
        memset(&mips_sched_selector, 0, sizeof(mips_sched_selector));
        mips_sched_selector.init_graph = mips_scheduler_init_graph;
        mips_sched_selector.init_block = mips_scheduler_init_block;
@@ -186,5 +191,11 @@ const list_sched_selector_t *mips_get_list_sched_selector(const void *self)
        mips_sched_selector.to_appear_in_schedule = mips_scheduler_to_appear_in_schedule;
        mips_sched_selector.finish_block = mips_scheduler_finish_block;
        mips_sched_selector.finish_graph = mips_scheduler_finish_graph;
-       return &mips_sched_selector;
+       //return &mips_sched_selector;
+#endif
+       return selector;
+}
+
+const ilp_sched_selector_t *mips_get_ilp_sched_selector(const void *self) {
+       return NULL;
 }