OSDN Git Service

PR target/42511
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jan 2010 13:02:34 +0000 (13:02 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jan 2010 13:02:34 +0000 (13:02 +0000)
* ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
note itself is not function_invariant_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155691 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ifcvt.c

index 5904c01..1e072f3 100644 (file)
@@ -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
index 00ac61e..c30b804 100644 (file)
@@ -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)));