#include "obst.h"
#include "type.h"
-#include "survive_dce.h"
+#include "irgopt.h"
#include "irgraph_t.h"
#include "irnode_t.h"
/* 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);
- 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. */
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;
/* 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);
{
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);