From: Bernd Schmidt Date: Sun, 5 Aug 2001 17:05:10 +0000 (+0000) Subject: Prefer a temporary register over directly storing into memory. X-Git-Tag: prereleases/libstdc++-3.0.95~2852 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8125d7e9ad4f1525e0e703f7610fd47cc628f047;p=thirdparty%2Fgcc.git Prefer a temporary register over directly storing into memory. From-SVN: r44649 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c13028913b12..5679160c2d35 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 * config/sh/sh.c (sh_asm_named_section): Fix typo in align diff --git a/gcc/expr.c b/gcc/expr.c index 80f73f854dcd..de399698f64b 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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 ();