summaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2001-03-09 06:28:21 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2001-03-09 06:28:21 +0000
commitf7cd799489d0c13bc8c2e55c25919a0e10aef2b5 (patch)
treee58d0b35b7101314a27ffafff223d1f068cc7c75 /gcc/rtlanal.c
parent4b89df4cf62f82944dbf1f2f851700e526e0ab48 (diff)
downloadgcc-f7cd799489d0c13bc8c2e55c25919a0e10aef2b5.tar.gz
* rtlanal.c (rtx_varies_p): Check operand 0 of a
LO_SUM unless for_alias is set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40340 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r--gcc/rtlanal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 237382f9072..be9374e68eb 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -163,8 +163,10 @@ rtx_varies_p (x, for_alias)
case LO_SUM:
/* The operand 0 of a LO_SUM is considered constant
- (in fact is it related specifically to operand 1). */
- return rtx_varies_p (XEXP (x, 1), for_alias);
+ (in fact it is related specifically to operand 1)
+ during alias analysis. */
+ return (! for_alias && rtx_varies_p (XEXP (x, 0), for_alias))
+ || rtx_varies_p (XEXP (x, 1), for_alias);
case ASM_OPERANDS:
if (MEM_VOLATILE_P (x))