- DBG((dbg, LEVEL_3, " Pred %+F\n", pred));
+ if (is_Phi(need_state) && get_nodes_block(need_state) == block) {
+ need_state = get_irn_n(need_state, i);
+ }
+
+ DBG((dbg, LEVEL_3, " Pred %+F (ends in %+F, we need %+F)\n", pred,
+ pred_info->end_state, need_state));
+
+ if (pred_info->end_state != need_state) {
+ ir_node *insert_point = get_end_of_block_insertion_point(pred);