rtlanal.c (rtx_varies_p): Check operand 0 of a LO_SUM unless for_alias is set.
authorJohn Wehle <john@feith.com>
Fri, 9 Mar 2001 06:28:21 +0000 (06:28 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 9 Mar 2001 06:28:21 +0000 (23:28 -0700)
        * rtlanal.c (rtx_varies_p): Check operand 0 of a
        LO_SUM unless for_alias is set.

From-SVN: r40340

gcc/ChangeLog
gcc/rtlanal.c

index 468d4a0840a107d2db126aa3dbfc3019d738a5c1..062ba490fe57ea27d5917b34eb983a6a31eb843e 100644 (file)
@@ -1,3 +1,8 @@
+Thu Mar  8 23:29:37 2001  John Wehle  (john@feith.com)
+
+       * rtlanal.c (rtx_varies_p): Check operand 0 of a
+       LO_SUM unless for_alias is set.
+
 2001-03-08  Stan Shebs  <shebs@apple.com>
 
        * objc/objc-act.c: Fix old typos in comments, add comments for
index 237382f9072c0fb693650a884e960945a7bbaa3b..be9374e68ebfadcb81cdf3a3288180ad0e8cfd46 100644 (file)
@@ -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))