diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/ifcvt.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5904c01..1e072f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-01-07 Uros Bizjak <ubizjak@gmail.com> + + PR target/42511 + * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when + note itself is not function_invariant_p. + 2009-01-07 Steven Bosscher <steven@gcc.gnu.org> * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist): @@ -84,7 +90,7 @@ and adjust call to legitimize_pic_address. (sparc_output_mi_thunk): Likewise. -2010-01-05 Paolo Bonzini <bonzinI@gnu.rg> +2010-01-05 Paolo Bonzini <bonzini@gnu.rg> H.J. Lu <hongjiu.lu@intel.com> PR target/42542 diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 00ac61ec..c30b8049 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -4087,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))); |