function.c (gen_mem_addressof): When changing the RTX from a REG to a MEM...
authorRoger Sayle <roger@eyesopen.com>
Fri, 9 Apr 2004 01:38:12 +0000 (01:38 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Fri, 9 Apr 2004 01:38:12 +0000 (01:38 +0000)
* function.c (gen_mem_addressof): When changing the RTX from a REG
to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.

From-SVN: r80540

gcc/ChangeLog
gcc/function.c

index 7a1823a..50fddfe 100644 (file)
@@ -1,5 +1,10 @@
 2004-04-08  Roger Sayle  <roger@eyesopen.com>
 
+       * function.c (gen_mem_addressof): When changing the RTX from a REG
+       to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
+
+2004-04-08  Roger Sayle  <roger@eyesopen.com>
+
        PR target/14888
        * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
        truncxfdf2_noop): Provide dummy "fmov" implementations.
index 90de284..e030864 100644 (file)
@@ -2856,6 +2856,7 @@ gen_mem_addressof (rtx reg, tree decl, int rescan)
   RTX_UNCHANGING_P (XEXP (r, 0)) = RTX_UNCHANGING_P (reg);
 
   PUT_CODE (reg, MEM);
+  MEM_VOLATILE_P (reg) = 0;
   MEM_ATTRS (reg) = 0;
   XEXP (reg, 0) = r;
 
@@ -2888,11 +2889,9 @@ gen_mem_addressof (rtx reg, tree decl, int rescan)
     {
       /* This can only happen during reload.  Clear the same flag bits as
         reload.  */
-      MEM_VOLATILE_P (reg) = 0;
       RTX_UNCHANGING_P (reg) = 0;
       MEM_IN_STRUCT_P (reg) = 0;
       MEM_SCALAR_P (reg) = 0;
-      MEM_ATTRS (reg) = 0;
 
       fixup_var_refs (reg, GET_MODE (reg), 0, reg, 0);
     }