simplified code
[libfirm] / ir / be / bespill.c
index 26cff16..86bbb17 100644 (file)
@@ -689,15 +689,27 @@ ir_node *do_remat(spill_env_t *env, ir_node *spilled, ir_node *reloader)
                          get_irn_arity(spilled), ins);
        copy_node_attr(spilled, res);
        new_backedge_info(res);
-       sched_reset(res);
 
        DBG((dbg, LEVEL_1, "Insert remat %+F of %+F before reloader %+F\n", res, spilled, reloader));
 
+#ifdef SCHEDULE_PROJS
        /* insert in schedule */
+       sched_reset(res);
        sched_add_before(reloader, res);
 #ifdef FIRM_STATISTICS
-       env->remat_count++;
+       if (! is_Proj(res))
+               env->remat_count++;
+#endif
+#else
+       if (! is_Proj(res)) {
+               /* insert in schedule */
+               sched_reset(res);
+               sched_add_before(reloader, res);
+#ifdef FIRM_STATISTICS
+               env->remat_count++;
 #endif
+       }
+#endif /* SCHEDULE_PROJS */
 
        return res;
 }
@@ -883,14 +895,10 @@ void be_insert_spills_reloads(spill_env_t *env)
                si->reloaders = NULL;
        }
 
-#ifdef FIRM_STATISTICS
-       if (be_stat_ev_is_active()) {
-               be_stat_ev("spill_spills", env->spill_count);
-               be_stat_ev("spill_reloads", env->reload_count);
-               be_stat_ev("spill_remats", env->remat_count);
-               be_stat_ev("spill_spilled_phis", env->spilled_phi_count);
-       }
-#endif
+       stat_ev_dbl("spill_spills", env->spill_count);
+       stat_ev_dbl("spill_reloads", env->reload_count);
+       stat_ev_dbl("spill_remats", env->remat_count);
+       stat_ev_dbl("spill_spilled_phis", env->spilled_phi_count);
 
        /* Matze: In theory be_ssa_construction should take care of the liveness...
         * try to disable this again in the future */