]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Don't make something with an autoinc an equivalencing insn (PR69752).
authorBernd Schmidt <bernds@redhat.com>
Mon, 15 Feb 2016 12:04:13 +0000 (12:04 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Mon, 15 Feb 2016 12:04:13 +0000 (12:04 +0000)
PR rtl-optimization/69752
* ira.c (update_equiv_regs): When looking for more than a single SET,
also take other side effects into account.

From-SVN: r233423

gcc/ChangeLog
gcc/ira.c

index 45f7b6ee81682590899b0bdc8f79a4c404a2d10a..a50c2075759e01355b5f6275529a4479ae00248f 100644 (file)
@@ -1,3 +1,9 @@
+2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR rtl-optimization/69752
+       * ira.c (update_equiv_regs): When looking for more than a single SET,
+       also take other side effects into account.
+
 2016-02-15  Marcin Koƛcielnicki  <koriakin@0x04.net>
 
        * config/s390/s390.c (s390_function_profiler): Add a new sequence
index 81d1d339947974ebe82e71f61e2c925ecb6eabf3..6b4a104cf8bb4fac94bef515090a1ef0cc2c4a0d 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -3392,7 +3392,8 @@ update_equiv_regs (void)
 
          /* If this insn contains more (or less) than a single SET,
             only mark all destinations as having no known equivalence.  */
-         if (set == NULL_RTX)
+         if (set == NULL_RTX
+             || side_effects_p (SET_SRC (set)))
            {
              note_stores (PATTERN (insn), no_equiv, NULL);
              continue;