summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-11 03:14:44 +0000
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-11 03:14:44 +0000
commitbf0ee60aba3bc52a02fc126a805f3e6c0f3cb3c0 (patch)
tree73a230b38110e6e47a013ef31f7fc55964ad7266
parentb0a4381b828201616a47348dd32fcb614d61bf63 (diff)
downloadgcc-bf0ee60aba3bc52a02fc126a805f3e6c0f3cb3c0.tar.gz
PR rtl-optimization/20331
* rtlanal.c (modified_between_p): Check its address first for MEM. (modified_in_p): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96282 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/rtlanal.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d64c02896ff..a25ac12d616 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-11 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR rtl-optimization/20331
+ * rtlanal.c (modified_between_p): Check its address first for MEM.
+ (modified_in_p): Likewise.
+
2005-03-11 Joseph S. Myers <joseph@codesourcery.com>
* config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 94e8d4c8033..79121d48b78 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -817,10 +817,10 @@ modified_between_p (rtx x, rtx start, rtx end)
return 1;
case MEM:
- if (MEM_READONLY_P (x))
- return 0;
if (modified_between_p (XEXP (x, 0), start, end))
return 1;
+ if (MEM_READONLY_P (x))
+ return 0;
for (insn = NEXT_INSN (start); insn != end; insn = NEXT_INSN (insn))
if (memory_modified_in_insn_p (x, insn))
return 1;
@@ -875,10 +875,10 @@ modified_in_p (rtx x, rtx insn)
return 1;
case MEM:
- if (MEM_READONLY_P (x))
- return 0;
if (modified_in_p (XEXP (x, 0), insn))
return 1;
+ if (MEM_READONLY_P (x))
+ return 0;
if (memory_modified_in_insn_p (x, insn))
return 1;
return 0;