- return res;
-}
-
-DEBUG_ONLY(
-/* Sets the debug module of a spill environment. */
-void be_set_spill_env_dbg_module(spill_env_t *env, firm_dbg_module_t *dbg) {
- env->dbg = dbg;
-}
-)
-
-/* Creates a new spill environment. */
-spill_env_t *be_new_spill_env(be_irg_t *birg) {
- spill_env_t *env = xmalloc(sizeof(env[0]));
- env->spills = new_set(cmp_spillinfo, 1024);
- env->irg = be_get_birg_irg(birg);
- env->birg = birg;
- env->arch_env = birg->main_env->arch_env;
- env->mem_phis = pset_new_ptr_default();
- // TODO, ask backend about costs..., or even ask backend whether we should
- // rematerialize...
- env->spill_cost = 8;
- env->reload_cost = 5;
- obstack_init(&env->obst);
- return env;
-}
-
-/* Deletes a spill environment. */
-void be_delete_spill_env(spill_env_t *env) {
- del_set(env->spills);
- del_pset(env->mem_phis);
- obstack_free(&env->obst, NULL);
- free(env);
-}
-
-/*
- * ____ _ ____ _ _
- * | _ \| | __ _ ___ ___ | _ \ ___| | ___ __ _ __| |___
- * | |_) | |/ _` |/ __/ _ \ | |_) / _ \ |/ _ \ / _` |/ _` / __|
- * | __/| | (_| | (_| __/ | _ < __/ | (_) | (_| | (_| \__ \
- * |_| |_|\__,_|\___\___| |_| \_\___|_|\___/ \__,_|\__,_|___/
- *
- */
-
-void be_add_remat(spill_env_t *env, ir_node *to_spill, ir_node *before, ir_node *rematted_node) {
- spill_info_t *spill_info;
- reloader_t *reloader;
-
- spill_info = get_spillinfo(env, to_spill);
-
- /* add the remat information */
- reloader = obstack_alloc(&env->obst, sizeof(reloader[0]));
- reloader->next = spill_info->reloaders;
- reloader->reloader = before;
- reloader->rematted_node = rematted_node;
- reloader->allow_remat = 1;
-
- spill_info->reloaders = reloader;
-}
-
-void be_add_reload(spill_env_t *env, ir_node *to_spill, ir_node *before,
- const arch_register_class_t *reload_cls, int allow_remat)