X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fifcvt.c;h=c30b804933278c4c0e3a2df0a0d33d2948b4e5f0;hb=41ad616dd2b78a0c53a488448d00ad7a20c35153;hp=348c0cca8bfc06bf2c42b2fb33ba11a21c9322eb;hpb=48e1416a24d50cacbb2a5e06a9ee61dd8cbee313;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 348c0cca8bf..c30b8049332 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1553,7 +1553,8 @@ noce_get_alt_condition (struct noce_if_info *if_info, rtx target, /* First, look to see if we put a constant in a register. */ prev_insn = prev_nonnote_insn (if_info->cond_earliest); if (prev_insn - && BLOCK_NUM (prev_insn) == BLOCK_NUM (if_info->cond_earliest) + && BLOCK_FOR_INSN (prev_insn) + == BLOCK_FOR_INSN (if_info->cond_earliest) && INSN_P (prev_insn) && GET_CODE (PATTERN (prev_insn)) == SET) { @@ -1810,7 +1811,7 @@ noce_try_abs (struct noce_if_info *if_info) { rtx set, insn = prev_nonnote_insn (earliest); if (insn - && BLOCK_NUM (insn) == BLOCK_NUM (earliest) + && BLOCK_FOR_INSN (insn) == BLOCK_FOR_INSN (earliest) && (set = single_set (insn)) && rtx_equal_p (SET_DEST (set), c)) { @@ -2291,7 +2292,7 @@ noce_process_if_block (struct noce_if_info *if_info) COND_EARLIEST to JUMP. Make sure the relevant data is still intact. */ if (! insn_b - || BLOCK_NUM (insn_b) != BLOCK_NUM (if_info->cond_earliest) + || BLOCK_FOR_INSN (insn_b) != BLOCK_FOR_INSN (if_info->cond_earliest) || !NONJUMP_INSN_P (insn_b) || (set_b = single_set (insn_b)) == NULL_RTX || ! rtx_equal_p (x, SET_DEST (set_b)) @@ -4086,7 +4087,8 @@ dead_or_predicable (basic_block test_bb, basic_block merge_bb, if (! note) continue; set = single_set (insn); - if (!set || !function_invariant_p (SET_SRC (set))) + if (!set || !function_invariant_p (SET_SRC (set)) + || !function_invariant_p (XEXP (note, 0))) remove_note (insn, note); } while (insn != end && (insn = NEXT_INSN (insn))); @@ -4164,7 +4166,12 @@ if_convert (void) #ifdef IFCVT_MULTIPLE_DUMPS if (dump_file && cond_exec_changed_p) - print_rtl_with_bb (dump_file, get_insns ()); + { + if (dump_flags & TDF_SLIM) + print_rtl_slim_with_bb (dump_file, get_insns (), dump_flags); + else + print_rtl_with_bb (dump_file, get_insns ()); + } #endif } while (cond_exec_changed_p);