]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Backport PR69752 fix from mainline.
authorBernd Schmidt <bernds@codesourcery.com>
Wed, 17 Feb 2016 13:03:44 +0000 (13:03 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 17 Feb 2016 13:03:44 +0000 (13:03 +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: r233491

gcc/ChangeLog
gcc/ira.c

index b82a7f38295623882fcf3d27b74849d1bb6a9962..b6c2cc7f31564ce7edde1b07fc1109b52e808206 100644 (file)
@@ -1,3 +1,12 @@
+2016-02-16  Bernd Schmidt  <bernds@codesourcery.com>
+
+       Backport from mainline
+       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-16  Tom de Vries  <tom@codesourcery.com>
 
        backport from trunk:
index 544dbf76f872521e049ba5d2c78f5a1e77b4c93b..4741d6fa1bbde73b22216c5664d15396ccfc9a9d 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -3510,7 +3510,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 == 0)
+         if (set == 0
+             || side_effects_p (SET_SRC (set)))
            {
              note_stores (PATTERN (insn), no_equiv, NULL);
              continue;