OSDN Git Service

Prefer a temporary register over directly storing into memory.
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Aug 2001 17:05:10 +0000 (17:05 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Aug 2001 17:05:10 +0000 (17:05 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44649 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/expr.c

index c130289..5679160 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 80f73f8..de39969 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 ();