simplify-rtx.c (simplify_subreg): Allow volatile memory to be subregged in case we...
authorJan Hubicka <jh@suse.cz>
Tue, 12 Jun 2001 15:25:16 +0000 (17:25 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 12 Jun 2001 15:25:16 +0000 (15:25 +0000)
* simplify-rtx.c (simplify_subreg): Allow volatile memory
to be subregged in case we don't have move instruction.

From-SVN: r43261

gcc/ChangeLog
gcc/simplify-rtx.c

index 9868b84b77ffeb253e6ccfb030c47e4a095073f4..2663daeb95d5e095bc98a345def64d483451c651 100644 (file)
@@ -1,3 +1,16 @@
+Tue Jun 12 17:24:07 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * simplify-rtx.c (simplify_subreg): Allow volatile memory
+       to be subregged in case we don't have move instruction.
+
+Tue Jun 12 12:20:12 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * loop.c: Include predict.h
+       (strength_reduce): Drop branch prediction note in case
+       number of iterations is known.
+       * predict.def (PRED_LOOP_ITERATIONS): new.
+       * Makefile.in (loop.o): Add dependancy on predict.h
+
 2001-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * c-decl.c (grokdeclarator): Use INTEGRAL_TYPE_P.
index 3450f7b168b5598c206fbd67f080e3553dd0fee9..b2123c16654683fc0759aae12231812743346f2f 100644 (file)
@@ -2409,7 +2409,11 @@ simplify_subreg (outermode, op, innermode, byte)
 
   if (GET_CODE (op) == MEM
       && ! mode_dependent_address_p (XEXP (op, 0))
-      && ! MEM_VOLATILE_P (op)
+      /* Allow splitting of volatile memory references in case we don't
+         have instruction to move the whole thing.  */
+      && (! MEM_VOLATILE_P (op)
+         || (mov_optab->handlers[(int) innermode].insn_code
+             == CODE_FOR_nothing))
       && GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (GET_MODE (op)))
     {
       rtx new;