]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Prefer a temporary register over directly storing into memory.
authorBernd Schmidt <bernds@redhat.com>
Sun, 5 Aug 2001 17:05:10 +0000 (17:05 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Sun, 5 Aug 2001 17:05:10 +0000 (17:05 +0000)
From-SVN: r44649

gcc/ChangeLog
gcc/expr.c

index c13028913b1250e6b00d9a29c00573945d24465c..5679160c2d35aed74fd4ffcc5fb4a5cfe2e60700 100644 (file)
@@ -20,6 +20,9 @@
        * config/ia64/ia64.md (cond_opsi2_internal and splitters): New
        patterns.
 
+       * expr.c (expand_expr, case COND_EXPR): Prefer working with a
+       temporary register than directly using a MEM.
+
 2001-08-04  Hans-Peter Nilsson  <hp@bitrange.com>
 
        * config/sh/sh.c (sh_asm_named_section): Fix typo in align
index 80f73f854dcd2dcf06730257db3f9595c1bd1526..de399698f64bbdff32786547bf8171283265915c 100644 (file)
@@ -8211,8 +8211,8 @@ expand_expr (exp, target, tmode, modifier)
                     || GET_CODE (original_target) == REG
                     || TREE_ADDRESSABLE (type))
 #endif
-                && ! (GET_CODE (original_target) == MEM
-                      && MEM_VOLATILE_P (original_target)))
+                && (GET_CODE (original_target) != MEM
+                    || TREE_ADDRESSABLE (type)))
          temp = original_target;
        else if (TREE_ADDRESSABLE (type))
          abort ();