cleaned up a bit
[libfirm] / ir / be / beabi.c
index f5ce340..8e82696 100644 (file)
@@ -11,7 +11,7 @@
 #include "obst.h"
 
 #include "type.h"
-#include "survive_dce.h"
+#include "irgopt.h"
 
 #include "irgraph_t.h"
 #include "irnode_t.h"
@@ -560,9 +560,9 @@ static ir_node *adjust_call(be_abi_irg_t *env, ir_node *irn, ir_node *curr_sp)
        /* Set the register classes and constraints of the Call parameters. */
        for(i = 0; i < n_low_args; ++i) {
                int index = low_args[i];
-               const arch_register_t *reg = get_call_arg(call, 0, index)->reg;
-               assert(reg != NULL);
-               be_set_constr_single_reg(low_call, index, reg);
+               be_abi_call_arg_t *arg = get_call_arg(call, 0, index);
+               assert(arg->reg != NULL);
+               be_set_constr_single_reg(low_call, index, arg->reg);
        }
 
        /* Set the register constraints of the results. */
@@ -1152,6 +1152,7 @@ static void collect_alloca_walker(ir_node *irn, void *data)
 
 be_abi_irg_t *be_abi_introduce(be_irg_t *birg)
 {
+       pmap_entry *ent;
        be_abi_irg_t *env = malloc(sizeof(env[0]));
 
        ir_node *dummy;
@@ -1183,7 +1184,9 @@ be_abi_irg_t *be_abi_introduce(be_irg_t *birg)
 
        /* Make some important node pointers survive the dead node elimination. */
        survive_dce_register_irn(env->dce_survivor, &env->init_sp);
-       survive_dce_register_pmap(env->dce_survivor, env->regs);
+
+       pmap_foreach(env->regs, ent)
+               survive_dce_register_irn(env->dce_survivor, (ir_node **) &ent->value);
 
        arch_env_push_irn_handler(env->birg->main_env->arch_env, &env->irn_handler);
 
@@ -1225,7 +1228,6 @@ void be_abi_fix_stack_nodes(be_abi_irg_t *env)
 {
        dom_front_info_t *df;
        pset *stack_nodes;
-       pmap_entry *ent;
 
        /* We need dominance frontiers for fix up */
        df = be_compute_dominance_frontiers(env->birg->irg);