aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2016-02-15 12:04:13 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2016-02-15 12:04:13 +0000
commit07b383317d572118690c82d58da9536b1ed44a72 (patch)
tree3af94e284d7cebc697ae0420e7aff582f0085f99
parent7e2507a578d6c82e6bb1fb05353c61f7808cf47e (diff)
downloadgcc-07b383317d572118690c82d58da9536b1ed44a72.zip
gcc-07b383317d572118690c82d58da9536b1ed44a72.tar.gz
gcc-07b383317d572118690c82d58da9536b1ed44a72.tar.bz2
Don't make something with an autoinc an equivalencing insn (PR69752).
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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ira.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 45f7b6e..a50c207 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/ira.c b/gcc/ira.c
index 81d1d33..6b4a104 100644
--- 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;