summaryrefslogtreecommitdiff
path: root/gcc/alias.c
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 /gcc/alias.c
parent4212aecdf8c4bd99b681fcfc2396844303bab39d (diff)
downloadgcc-bc36c711daea959554c32389a1b28da682257b38.tar.gz
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
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index e16e3501522..cff4fac26ed 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;