to_insert[demand++] = val;
if (is_usage) {
DBG((dbg, DBG_SPILL, "Reload %+F before %+F\n", val, env->instr));
- be_add_reload(env->senv, val, env->instr, env->cls);
+ be_add_reload(env->senv, val, env->instr, env->cls, 1);
}
}
else {
/* irnb is not in memory at the end of pred, so we have to reload it */
DBG((dbg, DBG_FIX, " reload %+F\n", irnb));
DBG((dbg, DBG_SPILL, "Reload %+F before %+F,%d\n", irnb, block, i));
- be_add_reload_on_edge(env->senv, irnb, block, i, env->cls);
+ be_add_reload_on_edge(env->senv, irnb, block, i, env->cls, 1);
next_value:
/*epsilon statement :)*/;
//firm_dbg_set_mask(dbg, DBG_SPILL);
be_assure_liveness(birg);
+ /* construct control flow loop tree */
+ if(! (get_irg_loopinfo_state(irg) & loopinfo_cf_consistent)) {
+ construct_cf_backedges(irg);
+ }
/* init belady env */
obstack_init(&env.ob);
obstack_free(&env.ob, NULL);
}
-static void be_spill_belady_oldinterface(const be_chordal_env_t *chordal_env)
-{
- be_spill_belady(chordal_env->birg, chordal_env->cls);
-}
-
void be_init_spillbelady(void)
{
static be_spiller_t belady_spiller = {
- be_spill_belady_oldinterface
+ be_spill_belady
};
be_register_spiller("belady", &belady_spiller);