disable experimental code for now
[libfirm] / ir / be / beschedtrace.c
index 4ec1a98..ea8c05e 100644 (file)
@@ -5,6 +5,9 @@
  * @date   28.08.2006
  * @cvs-id $Id$
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #include <stdlib.h>
 
@@ -272,7 +275,7 @@ static int get_reg_difference(trace_env_t *env, ir_node *irn) {
        for (i = get_irn_arity(irn) - 1; i >= 0; i--) {
                ir_node *in = get_irn_n(irn, i);
 
-               if (! be_is_live_end(env->liveness, block, irn) &&  /* if the value lives outside of block: do not count */
+               if (! be_is_live_end(env->liveness, block, in) &&  /* if the value lives outside of block: do not count */
                        mode_is_datab(get_irn_mode(in))             &&  /* must be data node */
                        ! arch_irn_is(env->arch_env, in, ignore))       /* ignore "ignore" nodes :) */
                        num_in++;
@@ -597,7 +600,7 @@ static ir_node *heuristic_select(void *block_env, nodeset *ns, nodeset *lv)
        int         reg_fact, cand_reg_fact;
 
        /* prefer instructions which can be scheduled early */
-#define PRIO_TIME        8
+#define PRIO_TIME        3
        /* prefer instructions with lots of successors */
 #define PRIO_NUMSUCCS    8
        /* prefer instructions with long critical path */
@@ -617,7 +620,8 @@ static ir_node *heuristic_select(void *block_env, nodeset *ns, nodeset *lv)
                        int sign  = rdiff < 0;
                        int chg   = (rdiff < 0 ? -rdiff : rdiff) << PRIO_CHG_PRESS;
 
-                       reg_fact = chg << cur_pressure;
+                       //reg_fact = chg << cur_pressure;
+                       reg_fact = chg * cur_pressure;
                        if (reg_fact < chg)
                                reg_fact = INT_MAX - 2;
                        reg_fact = sign ? -reg_fact : reg_fact;
@@ -642,7 +646,7 @@ static ir_node *heuristic_select(void *block_env, nodeset *ns, nodeset *lv)
                        DBG((trace_env->dbg, LEVEL_4, "\t#user:    %d (%d)\n", get_irn_num_user(trace_env, irn), get_irn_num_user(trace_env, irn) << PRIO_NUMSUCCS));
                        DBG((trace_env->dbg, LEVEL_4, "\tetime:    %d (%d)\n", get_irn_etime(trace_env, irn), 0 - (get_irn_etime(trace_env, irn) << PRIO_TIME)));
                        DBG((trace_env->dbg, LEVEL_4, "\tpreorder: %d (%d)\n", get_irn_preorder(trace_env, irn), get_irn_preorder(trace_env, irn) << PRIO_PREORD));
-                       DBG((trace_env->dbg, LEVEL_4, "\treg diff: %d (%d)\n", get_irn_reg_diff(trace_env, irn), 0 - cand_reg_fact));
+                       DBG((trace_env->dbg, LEVEL_4, "\treg diff: %d (%d)\n", get_irn_reg_diff(trace_env, irn), 0 - reg_fact));
                        DBG((trace_env->dbg, LEVEL_4, "\tpressure: %d\n", cur_pressure));
                }
        }