more comments added
[libfirm] / ir / be / belistsched.c
index 9a9c690..45e6c44 100644 (file)
@@ -75,11 +75,17 @@ static int cmp_usage(const void *a, const void *b)
 }
 #endif
 
+/**
+ * The trivial selector:
+ * Just assure that branches are executed last, otherwise select
+ * the first node ready.
+ */
 static ir_node *trivial_select(void *block_env, pset *ready_set)
 {
        const arch_env_t *arch_env = block_env;
        ir_node *irn = NULL;
 
+       /* assure that branches are executed last */
        for(irn = pset_first(ready_set); irn; irn = pset_next(ready_set)) {
                if(arch_irn_classify(arch_env, irn) != arch_irn_class_branch) {
                        pset_break(ready_set);
@@ -403,9 +409,9 @@ typedef struct _block_sched_env_t {
        pset *ready_set;
        pset *already_scheduled;
        ir_node *block;
-       firm_dbg_module_t *dbg;
        const list_sched_selector_t *selector;
        void *selector_block_env;
+       DEBUG_ONLY(firm_dbg_module_t *dbg;)
 } block_sched_env_t;
 
 /**
@@ -600,12 +606,12 @@ static void list_sched_block(ir_node *block, void *env_ptr)
        INIT_LIST_HEAD(&info->list);
 
        /* Initialize the block scheduling environment */
-       be.dbg               = firm_dbg_register("firm.be.sched");
        be.block             = block;
        be.curr_time         = 0;
        be.ready_set         = new_pset(node_cmp_func, get_irn_n_edges(block));
        be.already_scheduled = new_pset(node_cmp_func, get_irn_n_edges(block));
        be.selector          = selector;
+       FIRM_DBG_REGISTER(be.dbg, "firm.be.sched");
 
        if(selector->init_block)
                be.selector_block_env = selector->init_block(env->selector_env, block);