array: Add and use NEW_ARR_FZ().
[libfirm] / ir / be / beschedtrace.c
index 79f2d19..8c84bfb 100644 (file)
@@ -28,7 +28,7 @@
 #include <stdlib.h>
 
 #include "iredges_t.h"
-
+#include "beirg.h"
 #include "besched.h"
 #include "belistsched.h"
 #include "benode.h"
@@ -248,11 +248,11 @@ static sched_timestep_t latency(trace_env_t *env, ir_node *pred, int pred_cycle,
        if (is_Proj(curr))
                return 0;
 
+#if 0
        /* predecessors Proj's must be skipped */
        if (is_Proj(pred))
                pred = get_Proj_pred(pred);
 
-#if 0
        if (env->selector->latency)
                return env->selector->latency(env->selector_env, pred, pred_cycle, curr, curr_cycle);
 #endif
@@ -515,12 +515,11 @@ static trace_env_t *trace_init(ir_graph *irg)
        int         nn   = get_irg_last_idx(irg);
 
        env->curr_time  = 0;
-       env->sched_info = NEW_ARR_F(trace_irn_t, nn);
+       env->sched_info = NEW_ARR_FZ(trace_irn_t, nn);
        env->liveness   = be_get_irg_liveness(irg);
        FIRM_DBG_REGISTER(env->dbg, "firm.be.sched.trace");
 
        be_assure_live_chk(irg);
-       memset(env->sched_info, 0, nn * sizeof(*(env->sched_info)));
 
        return env;
 }
@@ -541,9 +540,6 @@ static void trace_free(void *data)
  */
 static ir_node *basic_selection(ir_nodeset_t *ready_set)
 {
-       ir_node *irn = NULL;
-       ir_nodeset_iterator_t iter;
-
        /* assure that branches and constants are executed last */
        foreach_ir_nodeset(ready_set, irn, iter) {
                if (!is_cfop(irn)) {
@@ -552,9 +548,7 @@ static ir_node *basic_selection(ir_nodeset_t *ready_set)
        }
 
        /* at last: schedule branches */
-       irn = get_nodeset_node(ready_set);
-
-       return irn;
+       return get_nodeset_node(ready_set);
 }
 
 /**
@@ -564,9 +558,7 @@ static ir_node *muchnik_select(void *block_env, ir_nodeset_t *ready_set)
 {
        trace_env_t *env = (trace_env_t*)block_env;
        ir_nodeset_t mcands, ecands;
-       ir_nodeset_iterator_t iter;
        sched_timestep_t max_delay = 0;
-       ir_node *irn;
 
        /* calculate the max delay of all candidates */
        foreach_ir_nodeset(ready_set, irn, iter) {
@@ -588,6 +580,7 @@ static ir_node *muchnik_select(void *block_env, ir_nodeset_t *ready_set)
        }
 
        /* select a node */
+       ir_node *irn;
        if (ir_nodeset_size(&mcands) == 1) {
                irn = get_nodeset_node(&mcands);
                DB((env->dbg, LEVEL_3, "\tirn = %+F, mcand = 1, max_delay = %u\n", irn, max_delay));
@@ -650,11 +643,10 @@ static void sched_muchnik(ir_graph *irg)
 static ir_node *heuristic_select(void *block_env, ir_nodeset_t *ns)
 {
        trace_env_t *trace_env   = (trace_env_t*)block_env;
-       ir_node     *irn, *cand  = NULL;
+       ir_node     *cand        = NULL;
        int         max_prio     = INT_MIN;
        int         cur_prio     = INT_MIN;
        int         reg_fact;
-       ir_nodeset_iterator_t iter;
        /* Note: register pressure calculation needs an overhaul, you need correct
         * tracking for each register class indidually and weight by each class
        int         cur_pressure = ir_nodeset_size(lv); */