aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-04-29 18:17:13 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2017-04-29 18:17:13 +0200
commitbc36c711daea959554c32389a1b28da682257b38 (patch)
tree02f0ea5899f7dfbcc235af8a4e835d036a77ed94
parent4212aecdf8c4bd99b681fcfc2396844303bab39d (diff)
downloadgcc-bc36c711daea959554c32389a1b28da682257b38.zip
gcc-bc36c711daea959554c32389a1b28da682257b38.tar.gz
gcc-bc36c711daea959554c32389a1b28da682257b38.tar.bz2
re PR rtl-optimization/80491 (Compiler regression for long-add case.)
PR rtl-optimization/80491 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs. From-SVN: r247409
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/alias.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e34747..9a9d192 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-04-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/80491
+ * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
+
2017-04-29 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/80487
diff --git a/gcc/alias.c b/gcc/alias.c
index e16e350..cff4fac 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -3221,6 +3221,10 @@ memory_modified_in_insn_p (const_rtx mem, const_rtx insn)
{
if (!INSN_P (insn))
return false;
+ /* Conservatively assume all non-readonly MEMs might be modified in
+ calls. */
+ if (CALL_P (insn))
+ return true;
memory_modified = false;
note_stores (PATTERN (insn), memory_modified_1, CONST_CAST_RTX(mem));
return memory_modified;