ir_node *proj_X; /**< initial exec proj */
ir_node *block; /**< old first block */
int blk_idx; /**< cfgpred index of the initial exec in block */
ir_node *proj_X; /**< initial exec proj */
ir_node *block; /**< old first block */
int blk_idx; /**< cfgpred index of the initial exec in block */
for (i = 0; i < n_pred; ++i) {
if (get_Block_cfgpred(node, i) == data->proj_X) {
data->block = node;
for (i = 0; i < n_pred; ++i) {
if (get_Block_cfgpred(node, i) == data->proj_X) {
data->block = node;
int rem = get_optimize();
ir_entity *ent = get_irg_entity(irg);
ir_type *method_tp = get_entity_type(ent);
int rem = get_optimize();
ir_entity *ent = get_irg_entity(irg);
ir_type *method_tp = get_entity_type(ent);
irg_walk_graph(irg, NULL, collect_data, &data);
/* check number of arguments */
irg_walk_graph(irg, NULL, collect_data, &data);
/* check number of arguments */
for (i = 1, p = env->rets; p; p = n) {
ir_node *block = get_nodes_block(p);
for (i = 1, p = env->rets; p; p = n) {
ir_node *block = get_nodes_block(p);
in[i++] = new_r_Jmp(block);
// exchange(p, new_r_Bad(irg));
in[i++] = new_r_Jmp(block);
// exchange(p, new_r_Bad(irg));
- in[i] = new_r_Proj(get_irg_start_block(irg), get_irg_start(irg), mode_M, pn_Start_M);
+ in[i] = new_r_Proj(get_irg_start(irg), mode_M, pn_Start_M);
NEW_ARR_A(ir_node **, call_params, env->n_tail_calls);
/* collect all parameters */
NEW_ARR_A(ir_node **, call_params, env->n_tail_calls);
/* collect all parameters */
for (i = 0; i < n_params; ++i) {
ir_mode *mode = get_type_mode(get_method_param_type(method_tp, i));
for (i = 0; i < n_params; ++i) {
ir_mode *mode = get_type_mode(get_method_param_type(method_tp, i));
set_irg_doms_inconsistent(irg);
set_irg_outs_inconsistent(irg);
set_irg_extblk_inconsistent(irg);
set_irg_doms_inconsistent(irg);
set_irg_outs_inconsistent(irg);
set_irg_extblk_inconsistent(irg);
set_trouts_inconsistent();
set_irg_callee_info_state(irg, irg_callee_info_inconsistent);
set_trouts_inconsistent();
set_irg_callee_info_state(irg, irg_callee_info_inconsistent);
ir_node *call, *mem, *jmp, *tuple;
set_cur_block(block);
ir_node *call, *mem, *jmp, *tuple;
set_cur_block(block);
turn_into_tuple(call, pn_Call_max);
set_Tuple_pred(call, pn_Call_M, mem);
turn_into_tuple(call, pn_Call_max);
set_Tuple_pred(call, pn_Call_M, mem);
end_block = get_irg_end_block(irg);
for (i = get_Block_n_cfgpreds(end_block) - 1; i >= 0; --i) {
ir_node *ret = get_Block_cfgpred(end_block, i);
end_block = get_irg_end_block(irg);
for (i = get_Block_n_cfgpreds(end_block) - 1; i >= 0; --i) {
ir_node *ret = get_Block_cfgpred(end_block, i);
for (j = 0; j < env->n_ress; ++j) {
ir_node *pred = get_Return_res(ret, j);
ir_node *n;
for (j = 0; j < env->n_ress; ++j) {
ir_node *pred = get_Return_res(ret, j);
ir_node *n;
set_Return_res(ret, j, n);
break;
case TR_MUL:
n = get_value(j, modes[j]);
set_Return_res(ret, j, n);
break;
case TR_MUL:
n = get_value(j, modes[j]);
ent = get_irg_entity(irg);
mtd_type = get_entity_type(ent);
n_ress = get_method_n_ress(mtd_type);
ent = get_irg_entity(irg);
mtd_type = get_entity_type(ent);
n_ress = get_method_n_ress(mtd_type);
ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK);
if (opt_tail_rec_irg(irg))
++n_opt_applications;
ir_reserve_resources(irg, IR_RESOURCE_IRN_LINK);
if (opt_tail_rec_irg(irg))
++n_opt_applications;