* nodes into a new and unreachable block. */
keep_alive(node);
keep_alive(get_cur_block());
- new_Block(0, NULL);
+ ir_node *block = new_Block(0, NULL);
+ set_cur_block(block);
}
return result;
mature_immBlock(zero_block);
ir_node *in_cf[2] = { jmp_one, jmp_zero };
- new_Block(2, in_cf);
+ ir_node *block = new_Block(2, in_cf);
+ set_cur_block(block);
ir_node *in[2] = { one, zero };
ir_node *val = new_d_Phi(dbgi, 2, in, mode);
/* create the common block */
ir_node *in_cf[2] = { true_jmp, false_jmp };
- new_Block(2, in_cf);
+ ir_node *block = new_Block(2, in_cf);
+ set_cur_block(block);
/* TODO improve static semantics, so either both or no values are NULL */
if (true_val == NULL || false_val == NULL)
/* create output projs & connect them */
if (needs_memory) {
- ir_node *projm = new_Proj(node, mode_M, out_size+1);
+ ir_node *projm = new_Proj(node, mode_M, out_size);
set_store(projm);
}
assert(entity->kind == ENTITY_FUNCTION);
ir_graph *irg = current_ir_graph;
ir_node *args = get_irg_args(irg);
- ir_node *start_block = get_irg_start_block(irg);
ir_type *function_irtype = get_ir_type(entity->declaration.type);
int first_param_nr = 0;
if (entity->function.need_closure) {
/* add an extra parameter for the static link */
- entity->function.static_link = new_r_Proj(start_block, args, mode_P_data, 0);
+ entity->function.static_link = new_r_Proj(args, mode_P_data, 0);
++first_param_nr;
}
ir_mode *param_mode = get_type_mode(param_irtype);
long pn = n + first_param_nr;
- ir_node *value = new_r_Proj(start_block, args, param_mode, pn);
+ ir_node *value = new_r_Proj(args, param_mode, pn);
ir_mode *mode = get_ir_mode_storage(type);
value = create_conv(NULL, value, mode);