int i, n_preds = get_Block_n_cfgpreds(block);
ir_graph *irg = get_Block_irg(block);
ir_node **ins = ALLOCAN(ir_node*, n_preds);
+ ir_node *dummy;
ir_node *phi;
assert(n_preds > 1);
+ dummy = new_r_Dummy(irg, env->mode);
for (i = 0; i < n_preds; ++i) {
- ins[i] = new_r_Unknown(irg, env->mode);
+ ins[i] = dummy;
}
phi = be_new_Phi(block, n_preds, ins, env->mode, env->phi_cls);
if (env->new_phis != NULL) {
}
}
-void be_ssa_construction_init(be_ssa_construction_env_t *env, be_irg_t *birg)
+void be_ssa_construction_init(be_ssa_construction_env_t *env, ir_graph *irg)
{
- ir_graph *irg = be_get_birg_irg(birg);
ir_node *sb = get_irg_start_block(irg);
int n_blocks = get_Block_dom_max_subtree_pre_num(sb);
stat_ev_dbl("bessaconstr_n_blocks", n_blocks);
memset(env, 0, sizeof(env[0]));
- be_assure_dom_front(birg);
+ be_assure_dom_front(irg);
env->irg = irg;
- env->domfronts = be_get_birg_dom_front(birg);
+ env->domfronts = be_get_irg_dom_front(irg);
env->new_phis = NEW_ARR_F(ir_node*, 0);
env->worklist = new_waitq();
int pos = get_edge_src_pos(edge);
ir_node *def;
- if (env->ignore_uses != NULL &&
+ if (env->ignore_uses != NULL &&
ir_nodeset_contains(env->ignore_uses, use))
continue;
if (is_Anchor(use) || is_End(use))
be_timer_pop(T_SSA_CONSTR);
}
+BE_REGISTER_MODULE_CONSTRUCTOR(be_init_ssaconstr);
void be_init_ssaconstr(void)
{
FIRM_DBG_REGISTER(dbg, "firm.be.ssaconstr");
}
-
-BE_REGISTER_MODULE_CONSTRUCTOR(be_init_ssaconstr);